diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index ef23ee175fd..faff1069594 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -5880,11 +5880,11 @@ namespace ts { } } - const checkJsDirectiveRegEx = /^\/\/\/?\s*@check(\s+(true|false))?/gim; + const checkJsDirectiveRegEx = /^\/\/\/?\s*(@ts-check|@ts-nocheck)\s*$/gim; const checkJsDirectiveMatchResult = checkJsDirectiveRegEx.exec(comment); if (checkJsDirectiveMatchResult) { checkJsDirective = { - enabled: compareStrings(checkJsDirectiveMatchResult[2], "false", /*ignoreCase*/ true) !== Comparison.EqualTo, + enabled: compareStrings(checkJsDirectiveMatchResult[1], "@ts-check", /*ignoreCase*/ true) === Comparison.EqualTo, end: range.end, pos: range.pos }; diff --git a/src/compiler/program.ts b/src/compiler/program.ts index f524a549859..d46c3b2479f 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -904,7 +904,7 @@ namespace ts { Debug.assert(!!sourceFile.bindDiagnostics); const bindDiagnostics = sourceFile.bindDiagnostics; - // For JavaScript files, we don't want to report semantic errors unless ecplicitlly requested. + // For JavaScript files, we don't want to report semantic errors unless explicitly requested. const includeCheckDiagnostics = !isSourceFileJavaScript(sourceFile) || (sourceFile.checkJsDirective ? sourceFile.checkJsDirective.enabled : options.checkJs); const checkDiagnostics = includeCheckDiagnostics ? typeChecker.getDiagnostics(sourceFile, cancellationToken) : []; diff --git a/tests/baselines/reference/checkJsFiles2.errors.txt b/tests/baselines/reference/checkJsFiles2.errors.txt index 5c1a211a646..7fc852fba14 100644 --- a/tests/baselines/reference/checkJsFiles2.errors.txt +++ b/tests/baselines/reference/checkJsFiles2.errors.txt @@ -3,7 +3,7 @@ tests/cases/compiler/a.js(4,1): error TS2322: Type '0' is not assignable to type ==== tests/cases/compiler/a.js (1 errors) ==== - // @check + // @ts-check var x = "string"; x = 0; ~ diff --git a/tests/baselines/reference/checkJsFiles3.errors.txt b/tests/baselines/reference/checkJsFiles3.errors.txt index 5c1a211a646..7fc852fba14 100644 --- a/tests/baselines/reference/checkJsFiles3.errors.txt +++ b/tests/baselines/reference/checkJsFiles3.errors.txt @@ -3,7 +3,7 @@ tests/cases/compiler/a.js(4,1): error TS2322: Type '0' is not assignable to type ==== tests/cases/compiler/a.js (1 errors) ==== - // @check + // @ts-check var x = "string"; x = 0; ~ diff --git a/tests/baselines/reference/checkJsFiles4.errors.txt b/tests/baselines/reference/checkJsFiles4.errors.txt index 87eb0f3b7d4..7fc852fba14 100644 --- a/tests/baselines/reference/checkJsFiles4.errors.txt +++ b/tests/baselines/reference/checkJsFiles4.errors.txt @@ -3,7 +3,7 @@ tests/cases/compiler/a.js(4,1): error TS2322: Type '0' is not assignable to type ==== tests/cases/compiler/a.js (1 errors) ==== - // @check true + // @ts-check var x = "string"; x = 0; ~ diff --git a/tests/baselines/reference/checkJsFiles5.symbols b/tests/baselines/reference/checkJsFiles5.symbols index cdb53964aa5..76cc21c46a6 100644 --- a/tests/baselines/reference/checkJsFiles5.symbols +++ b/tests/baselines/reference/checkJsFiles5.symbols @@ -1,6 +1,6 @@ === tests/cases/compiler/a.js === -// @check false +// @ts-nocheck var x = "string"; >x : Symbol(x, Decl(a.js, 2, 3)) diff --git a/tests/baselines/reference/checkJsFiles5.types b/tests/baselines/reference/checkJsFiles5.types index bd1ab8d942c..15704315bbe 100644 --- a/tests/baselines/reference/checkJsFiles5.types +++ b/tests/baselines/reference/checkJsFiles5.types @@ -1,6 +1,6 @@ === tests/cases/compiler/a.js === -// @check false +// @ts-nocheck var x = "string"; >x : string >"string" : "string" diff --git a/tests/cases/compiler/checkJsFiles2.ts b/tests/cases/compiler/checkJsFiles2.ts index 36bc2cbd255..2e4d4396e46 100644 --- a/tests/cases/compiler/checkJsFiles2.ts +++ b/tests/cases/compiler/checkJsFiles2.ts @@ -3,6 +3,6 @@ // @noEmit: true // @fileName: a.js -// @check +// @ts-check var x = "string"; x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/checkJsFiles3.ts b/tests/cases/compiler/checkJsFiles3.ts index a0a9a152fee..885bf1979f5 100644 --- a/tests/cases/compiler/checkJsFiles3.ts +++ b/tests/cases/compiler/checkJsFiles3.ts @@ -2,6 +2,6 @@ // @noEmit: true // @fileName: a.js -// @check +// @ts-check var x = "string"; x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/checkJsFiles4.ts b/tests/cases/compiler/checkJsFiles4.ts index 8bebedf55e7..2e4d4396e46 100644 --- a/tests/cases/compiler/checkJsFiles4.ts +++ b/tests/cases/compiler/checkJsFiles4.ts @@ -3,6 +3,6 @@ // @noEmit: true // @fileName: a.js -// @check true +// @ts-check var x = "string"; x = 0; \ No newline at end of file diff --git a/tests/cases/compiler/checkJsFiles5.ts b/tests/cases/compiler/checkJsFiles5.ts index c28114f570b..10f59aed172 100644 --- a/tests/cases/compiler/checkJsFiles5.ts +++ b/tests/cases/compiler/checkJsFiles5.ts @@ -3,6 +3,6 @@ // @noEmit: true // @fileName: a.js -// @check false +// @ts-nocheck var x = "string"; x = 0; \ No newline at end of file