More Syntax and Binding Errors in JavaScript

TL;DR

JSのシンタックスエラーが強化された?

内容がよく掴めなかったので、オプション指定によるJSチェックを整理。

サンプルのJSコード

some.js
function container() {
  export function foo() {}
}

const a = 123;
const a = 456;

allowJs

falseの場合、JSは吐き出されない。

tsconfig.json
{
  "compilerOptions": {
    "allowJs": false,
  }
}
$ tsc

├── dist
│   └── 
├── src
│   └── a.js

trueの場合、JSが吐き出される。

tsconfig.json
{
  "compilerOptions": {
    "allowJs": true,
  }
}
$ tsc

├── dist
│   └── a.js
├── src
│   └── a.js

checkJs

falseの場合、JSのエラーは検出しない。

tsconfig.js
{
  "compilerOptions": {
    "checkJs": false,
  }
}
src/a.js
function container() {
  export function foo() {}
}

const a = 123;
const a = 456;

trueの場合、JSのエラーが検出される。

tsconfig.json
{
  "compilerOptions": {
    "checkJs": true,
  }
}
src/a.js
function container() {
  export function foo() {} // ❌ ERROR!
}

const a = 123;
const a = 456; // ❌ ERROR!

@ts-check

checkJsがfalseの時、特定のJSファイルだけエラー検出対象にする

// @ts-check
function container() {
  export function foo() {} // ❌ ERROR!
}

const a = 123;
const a = 456; // ❌ ERROR!

@ts-nocheck

checkJsがtrueの時、特定のJSファイルだけエラーを検出しない

// @ts-nocheck
function container() {
  export function foo() {}
}

const a = 123;
const a = 456;

Last updated