diff --git a/packages/tsconfig-reference/scripts/cli/generateJSON.ts b/packages/tsconfig-reference/scripts/cli/generateJSON.ts
index 1af3baa73109..38d700e2cb7e 100644
--- a/packages/tsconfig-reference/scripts/cli/generateJSON.ts
+++ b/packages/tsconfig-reference/scripts/cli/generateJSON.ts
@@ -40,7 +40,7 @@ export interface CompilerOptionJSON extends CommandLineOptionBase {
deprecated?: string;
internal?: true;
recommended?: true;
- defaultValue?: string;
+ defaultValue?: string | number | boolean;
hostObj: string;
}
diff --git a/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts b/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
index 82ef44d058fa..61946a2ae5f7 100644
--- a/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
+++ b/packages/tsconfig-reference/scripts/cli/generateMarkdown.ts
@@ -94,11 +94,11 @@ languages.forEach((lang) => {
// @ts-ignore
const or = new Intl.ListFormat(lang, { type: "disjunction" });
optType = or.format(
- option.allowedValues.map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`$&`"))
+ option.allowedValues.map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`"$&"`"))
);
} else {
optType = option.allowedValues
- .map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`$&`"))
+ .map((v) => v.replace(/^[-.0-9_a-z]+$/i, "`"$&"`"))
.join(", ");
}
} else {
@@ -107,7 +107,7 @@ languages.forEach((lang) => {
markdownChunks.push(`
${parseMarkdown(optType)} | `);
if (!opts?.noDefaults) {
- markdownChunks.push(` ${parseMarkdown(option.defaultValue)} | `);
+ markdownChunks.push(` ${parseMarkdown(JSON.stringify(option.defaultValue))} | `);
}
markdownChunks.push(``);
diff --git a/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts b/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts
index 397fde24d3d2..3cdb4a15f61e 100644
--- a/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts
+++ b/packages/tsconfig-reference/scripts/tsconfig/generateJSON.ts
@@ -48,7 +48,7 @@ export interface CompilerOptionJSON extends CommandLineOptionBase {
deprecated?: string;
internal?: true;
recommended?: true;
- defaultValue?: string;
+ defaultValue?: string | number | boolean;
hostObj: string;
}
diff --git a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
index 6c338f6f8966..3bee64efb3c5 100644
--- a/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
+++ b/packages/tsconfig-reference/scripts/tsconfig/generateMarkdown.ts
@@ -248,12 +248,12 @@ languages.forEach((lang) => {
mdTableRows.push(["Internal"]);
}
- if (option.defaultValue) {
- mdTableRows.push(["Default", String(option.defaultValue)]);
+ if (option.defaultValue !== undefined) {
+ mdTableRows.push(["Default", JSON.stringify(option.defaultValue)]);
}
if (option.allowedValues) {
- mdTableRows.push(["Allowed", option.allowedValues]);
+ mdTableRows.push(["Allowed", option.allowedValues.map(JSON.stringify)]);
}
if (option.related) {
diff --git a/packages/tsconfig-reference/scripts/tsconfigRules.ts b/packages/tsconfig-reference/scripts/tsconfigRules.ts
index 991666ba6a4e..53958289a3f9 100644
--- a/packages/tsconfig-reference/scripts/tsconfigRules.ts
+++ b/packages/tsconfig-reference/scripts/tsconfigRules.ts
@@ -202,7 +202,7 @@ function trueIf(name: string) {
export const defaultsForOptions = {
...Object.fromEntries(
- ts.optionDeclarations.map((option) => [
+ [...ts.optionDeclarations, ...ts.optionsForWatch].map((option) => [
option.name,
typeof option.defaultValueDescription === "object"
? option.defaultValueDescription.message