【TypeScript】Accessors are only available when targeting ECMAScript 5 and higherエラー




この記事は最終更新日から2年以上経過しています。

TypeScript勉強中でクラスを定義し、Getter,Setterを用意してコンパイルしたら以下のエラーが発生しました。

test5.ts:3:9 - error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.

3     get age(): number {
          ~~~

test5.ts:6:9 - error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.

6     set age(value: number) {
          ~~~


Found 2 errors.

解決方法1:コマンド実行時にオプションを指定

コンパイルコマンド実行時、-tまたは–targetオプションでECMAScriptのバージョンを指定する必要がありました。
ヘルプコマンドで以下のように確認できます。

tsc --help
〜略〜
-t VERSION, --target VERSION                       Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'.
〜略〜

確認したTypeScriptのバージョンはVersion 3.7.5です。
今回はエラーを解決するのに以下のコマンドで解決できました。

tsc --target EC5 ファイル名

解決方法2:tsconfig.jsonに設定

tsconfig.jsonを利用している場合は、tsconfig.jsonに以下を設定することで解決できます。

  "compilerOptions": {
    "target": "ES2015"
  }