diff --git a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.ts similarity index 98% rename from packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js rename to packages/react-scripts/scripts/utils/verifyTypeScriptSetup.ts index cdc2d77..1719f3d 100644 --- a/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.js +++ b/packages/react-scripts/scripts/utils/verifyTypeScriptSetup.ts @@ -57,6 +57,15 @@ function verifyNoTypeScript() { return true; } +type TsType = { + [key: string] : any; + JsxEmit: { + ReactJSX: string; + React: string, + } +} + + function verifyTypeScriptSetup() { let firstTimeSetup = false; @@ -71,7 +80,7 @@ function verifyTypeScriptSetup() { const isYarn = fs.existsSync(paths.yarnLockFile); // Ensure typescript is installed - let ts; + let ts: TsType; try { // TODO: Remove this hack once `globalThis` issue is resolved // https://github.com/jsdom/jsdom/issues/2961 @@ -112,6 +121,7 @@ function verifyTypeScriptSetup() { console.error(); process.exit(1); } + const compilerOptions = { // These are suggested values and will be set when not present in the @@ -148,7 +158,7 @@ function verifyTypeScriptSetup() { jsx: { parsedValue: hasJsxRuntime && semver.gte(ts.version, '4.1.0-beta') - ? ts.JsxEmit.ReactJSX + ? ts.JsxEmit.ReactJsx : ts.JsxEmit.React, value: hasJsxRuntime && semver.gte(ts.version, '4.1.0-beta')