エラー内容
TypeScript で変数 name を定義するとコンパイルエラーが発生。 Playgroundでも発生する。
記述したコード
test.ts
const name = 'テスト';
console.log(name);
原因
変数名:name はすでに lib.dom.d.ts で定義されているので、グローバル変数で定義できない。
同じく caches などもエラーとなる。
どこにも定義されていない変数名(moromoro など)ならエラーにはならない。
対応方法1
モジュール化すればエラーは消えるのでどこかに export 文を記述する。
test.ts
let name = 'ss';
console.log(name);
export {};
対応方法2
グローバル変数にならないようにブロック化する。
test.ts
{
let name = 'ss';
console.log(name);
}
対応方法3?
ES6 移行なら発生しないとのことなので、target を「ES6」にする。
tsconfig.json
"target": "ES6",
"module": "commonjs"
ただ、私の環境ではコンパイルエラーのままでした、、、。