diff --git a/packages/typescript-estree/src/create-program/createDefaultProgram.ts b/packages/typescript-estree/src/create-program/createDefaultProgram.ts index 98e61d6b48e2..e9660337f93c 100644 --- a/packages/typescript-estree/src/create-program/createDefaultProgram.ts +++ b/packages/typescript-estree/src/create-program/createDefaultProgram.ts @@ -57,7 +57,10 @@ function createDefaultProgram( const program = ts.createProgram( [parseSettings.filePath], - commandLine.options, + { + ...commandLine.options, + jsDocParsingMode: ts.JSDocParsingMode?.ParseForTypeInfo, + }, compilerHost, ); const ast = program.getSourceFile(parseSettings.filePath); diff --git a/packages/typescript-estree/src/create-program/createProjectService.ts b/packages/typescript-estree/src/create-program/createProjectService.ts index 341dd77ae18f..0bd4cefd40bf 100644 --- a/packages/typescript-estree/src/create-program/createProjectService.ts +++ b/packages/typescript-estree/src/create-program/createProjectService.ts @@ -1,6 +1,6 @@ -/* eslint-disable @typescript-eslint/no-empty-function -- for TypeScript APIs*/ import type * as ts from 'typescript/lib/tsserverlibrary'; +// eslint-disable-next-line @typescript-eslint/no-empty-function const doNothing = (): void => {}; const createStubFileWatcher = (): ts.FileWatcher => ({ @@ -45,6 +45,6 @@ export function createProjectService(): TypeScriptProjectService { startGroup: doNothing, }, session: undefined, + jsDocParsingMode: tsserver.JSDocParsingMode?.ParseForTypeInfo, }); } -/* eslint-enable @typescript-eslint/no-empty-function */ diff --git a/packages/typescript-estree/src/create-program/createSourceFile.ts b/packages/typescript-estree/src/create-program/createSourceFile.ts index a89a364ac545..cd021bfced38 100644 --- a/packages/typescript-estree/src/create-program/createSourceFile.ts +++ b/packages/typescript-estree/src/create-program/createSourceFile.ts @@ -20,7 +20,10 @@ function createSourceFile(parseSettings: ParseSettings): ts.SourceFile { : ts.createSourceFile( parseSettings.filePath, parseSettings.codeFullText, - ts.ScriptTarget.Latest, + { + languageVersion: ts.ScriptTarget.Latest, + jsDocParsingMode: ts.JSDocParsingMode?.ParseNone, + }, /* setParentNodes */ true, getScriptKind(parseSettings.filePath, parseSettings.jsx), ); diff --git a/packages/typescript-estree/src/create-program/getWatchProgramsForProjects.ts b/packages/typescript-estree/src/create-program/getWatchProgramsForProjects.ts index 1b144b9381d1..c0175245f8ee 100644 --- a/packages/typescript-estree/src/create-program/getWatchProgramsForProjects.ts +++ b/packages/typescript-estree/src/create-program/getWatchProgramsForProjects.ts @@ -267,6 +267,7 @@ function createWatchProgram( // eslint-disable-next-line @typescript-eslint/no-empty-function /*reportWatchStatus*/ () => {}, ) as WatchCompilerHostOfConfigFile; + watchCompilerHost.jsDocParsingMode = ts.JSDocParsingMode?.ParseForTypeInfo; // ensure readFile reads the code being linted instead of the copy on disk const oldReadFile = watchCompilerHost.readFile;