Repository: denoland/deno
Pull request: fix: consistent with deno_config and treat `"experimentalDecorators"` as deprecated

<!--
Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(std/http): Fix race condition in server
    - docs(console): Update docstrings
    - feat(doc): Handle nested reexports

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label.
-->

https://github.com/denoland/deno_config/blob/5f9130623f779fdda8cc4d3f675911f9e69a35ac/src/deno_json/ts.rs#L98-L132


Changed files:
filename: cli/schemas/config-file.v1.json
patch: @@ -35,18 +35,32 @@
           "default": false,
           "markdownDescription": "Enable error reporting in type-checked JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#checkJs"
         },
+        "emitDecoratorMetadata": {
+          "description": "Emit design-type metadata for decorated declarations in source files.",
+          "type": "boolean",
+          "default": false,
+          "deprecated": true,
+          "markdownDescription": "Emit design-type metadata for decorated declarations in source files.\n\nSee more: https://www.typescriptlang.org/tsconfig/#emitDecoratorMetadata"
+        },
         "exactOptionalPropertyTypes": {
-          "description": "Differentiate between undefined and not present when type checking",
+          "description": "Interpret optional property types as written, rather than adding 'undefined'.",
           "type": "boolean",
           "default": false,
-          "markdownDescription": "Differentiate between undefined and not present when type checking\n\nSee more: https://www.typescriptlang.org/tsconfig#exactOptionalPropertyTypes"
+          "markdownDescription": "Interpret optional property types as written, rather than adding 'undefined'.\n\nSee more: https://www.typescriptlang.org/tsconfig#exactOptionalPropertyTypes"
         },
         "experimentalDecorators": {
           "description": "Enable experimental support for legacy experimental decorators.",
           "type": "boolean",
           "default": false,
+          "deprecated": true,
           "markdownDescription": "Enable experimental support for legacy experimental decorators.\n\nSee more: https://www.typescriptlang.org/tsconfig#experimentalDecorators"
         },
+        "isolatedDeclarations": {
+          "description": "Require sufficient annotation on exports so other tools can trivially generate declaration files.",
+          "type": "boolean",
+          "default": false,
+          "markdownDescription": "Require sufficient annotation on exports so other tools can trivially generate declaration files.\n\nSee more: https://www.typescriptlang.org/tsconfig/#isolatedDeclarations"
+        },
         "jsx": {
           "description": "Specify what JSX code is generated.",
           "default": "react",
@@ -91,12 +105,6 @@
           },
           "markdownDescription": "Specify list of elements that should be exempt from being precompiled when the jsx `precompile` transform is used."
         },
-        "keyofStringsOnly": {
-          "description": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.",
-          "type": "boolean",
-          "default": false,
-          "markdownDescription": "Make keyof only return strings instead of string, numbers or symbols. Legacy option.\n\nSee more: https://www.typescriptlang.org/tsconfig#keyofStringsOnly"
-        },
         "lib": {
           "description": "Specify a set of bundled library declaration files that describe the target runtime environment.",
           "type": "array",
@@ -143,23 +151,17 @@
           "default": true,
           "markdownDescription": "Enable error reporting when `this` is given the type `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitThis"
         },
-        "noImplicitUseStrict": {
-          "description": "Disable adding 'use strict' directives in emitted JavaScript files.",
-          "type": "boolean",
-          "default": true,
-          "markdownDescription": "Disable adding 'use strict' directives in emitted JavaScript files.\n\nSee more: https://www.typescriptlang.org/tsconfig#noImplicitUseStrict"
-        },
         "noPropertyAccessFromIndexSignature": {
           "description": "Enforces using indexed accessors for keys declared using an indexed type.",
           "type": "boolean",
           "default": false,
           "markdownDescription": "Enforces using indexed accessors for keys declared using an indexed type.\n\nSee more: https://www.typescriptlang.org/tsconfig#noPropertyAccessFromIndexSignature"
         },
-        "noStrictGenericChecks": {
-          "description": "Disable strict checking of generic signatures in function types.",
+        "noUncheckedIndexedAccess": {
+          "description": "Add `undefined` to a type when accessed using an index.",
           "type": "boolean",
           "default": false,
-          "markdownDescription": "Disable strict checking of generic signatures in function types.\n\nSee more: https://www.typescriptlang.org/tsconfig#noStrictGenericChecks"
+          "markdownDescription": "Add `undefined` to a type when accessed using an index.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess"
         },
         "noUnusedLocals": {
           "description": "Enable error reporting when a local variables aren't read.",
@@ -173,12 +175,6 @@
           "default": false,
           "markdownDescription": "Raise an error when a function parameter isn't read\n\nSee more: https://www.typescriptlang.org/tsconfig#noUnusedParameters"
         },
-        "noUncheckedIndexedAccess": {
-          "description": "Add `undefined` to a type when accessed using an index.",
-          "type": "boolean",
-          "default": false,
-          "markdownDescription": "Add `undefined` to a type when accessed using an index.\n\nSee more: https://www.typescriptlang.org/tsconfig#noUncheckedIndexedAccess"
-        },
         "strict": {
           "description": "Enable all strict type checking options.",
           "type": "boolean",
@@ -191,41 +187,49 @@
           "default": true,
           "markdownDescription": "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictBindCallApply"
         },
-        "strictFunctionTypes": {
-          "description": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.",
+        "strictBuiltinIteratorReturn": {
+          "description": "Built-in iterators are instantiated with a `TReturn` type of undefined instead of `any`.",
           "type": "boolean",
           "default": true,
-          "markdownDescription": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictFunctionTypes"
+          "markdownDescription": "Built-in iterators are instantiated with a `TReturn` type of undefined instead of `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig/#strictBuiltinIteratorReturn"
         },
-        "strictPropertyInitialization": {
-          "description": "Check for class properties that are declared but not set in the constructor.",
+        "strictFunctionTypes": {
+          "description": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.",
           "type": "boolean",
           "default": true,
-          "markdownDescription": "Check for class properties that are declared but not set in the constructor.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictPropertyInitialization"
+          "markdownDescription": "When assigning functions, check to ensure parameters and the return values are subtype-compatible.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictFunctionTypes"
         },
         "strictNullChecks": {
           "description": "When type checking, take into account `null` and `undefined`.",
           "type": "boolean",
           "default": true,
           "markdownDescription": "When type checking, take into account `null` and `undefined`.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictNullChecks"
         },
-        "suppressExcessPropertyErrors": {
-          "description": "Disable reporting of excess property errors during the creation of object literals.",
+        "strictPropertyInitialization": {
+          "description": "Check for class properties that are declared but not set in the constructor.",
           "type": "boolean",
-          "default": false,
-          "markdownDescription": "Disable reporting of excess property errors during the creation of object literals.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressExcessPropertyErrors"
+          "default": true,
+          "markdownDescription": "Check for class properties that are declared but not set in the constructor.\n\nSee more: https://www.typescriptlang.org/tsconfig#strictPropertyInitialization"
         },
-        "suppressImplicitAnyIndexErrors": {
-          "description": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.",
-          "type": "boolean",
-          "default": false,
-          "markdownDescription": "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.\n\nSee more: https://www.typescriptlang.org/tsconfig#suppressImplicitAnyIndexErrors"
+        "types": {
+          "description": "Specify type package names to be included without being referenced in a source file.",
+          "type": "array",
+          "items": {
+            "type": "string"
+          },
+          "markdownDescription": "Specify type package names to be included without being referenced in a source file.\n\nSee more: https://www.typescriptlang.org/tsconfig/#types"
         },
         "useUnknownInCatchVariables": {
           "description": "Default catch clause variables as `unknown` instead of `any`.",
           "type": "boolean",
           "default": true,
           "markdownDescription": "Default catch clause variables as `unknown` instead of `any`.\n\nSee more: https://www.typescriptlang.org/tsconfig#useUnknownInCatchVariables"
+        },
+        "verbatimModuleSyntax": {
+          "description": "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.",
+          "type": "boolean",
+          "default": false,
+          "markdownDescription": "Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.\n\nSee more: https://www.typescriptlang.org/tsconfig/#verbatimModuleSyntax"
         }
       }
     },