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"
}