web-dev-qa-db-ja.com

アクセサーは、ECMAScript 5以降を対象とする場合にのみ使用できます

このコードを実行しようとしていますが、次のエラーが発生しています:

Animal.ts(10,13):エラーTS1056:アクセサーは、ECMAScript 5以降を対象とする場合にのみ使用できます。 Animal.ts(14,13):エラーTS1056:アクセサーは、ECMAScript 5以降を対象とする場合にのみ使用可能です。

interface IAnimal{
    name : string;
    sayName():string;
}

class AnimalImpm implements IAnimal{
    private _name : string = '[Animal]';
    get name():string{
        return this._name;
    }

    set name(name:string){
        this._name = name;
    }

    constructor(name:string){
        this.name = name;
    }

    sayName():string {
        console.log(`My name is ${this.name}`);
        return "Hello";
    }
}
32
jagdish khetre

私のために働く唯一のことは、macOSとWindowsでTargetを指定することでした。

tsc --target es5 script.ts

端末でコマンドを実行できます。

39
BilalReffas

プロジェクトでtsconfig.jsonファイルを設定してみてください。

{
  "compilerOptions": {
  "target": "es5"
  }
  "files": []
}

これは、TypeScriptコンパイラーにバージョンを具体的に対象とするように指示します。

21
loctrice

私は同じ問題を抱えていました。 docs から読み取ったのは、ファイルを指定するとtsconfig.jsonファイルが無視されるということです。

enter image description here

私のtsconfig.jsonファイル

{
  "compilerOptions": {
    "target": "es5"
  },
  "include": [
    "*.ts"
  ]
}

そして、コマンドラインから実行します

tsc && node *.js
8
noWayhome

私はそれが古い会話であることを知っていますが、ここでの解決策はすべての開発者にとって非常に役立つコマンドになると思います。

ターミナル、コマンドプロンプト、Git Bashなどでこのコマンドを使用すると簡単に解決できます。

tsc --target ES2016 Animal.ts --watch

または

tsc --target es5 Animal.ts --watch

--watchはオプションであり、変更ごとにコードをコンパイルする必要がないことを意味します。

2

Windowsでは、

tsc --target es5 filename.ts

オプションは、「es3」、「es5」、「es6」、「es2015」、「es2016」、「es2017」、「esnext」です。 (「なし」)

2
Honey Bee

単一ファイルを扱っている場合、これを行うことができます

tsc your-file.ts --target ES2016 --watch

プロジェクト構成全体でtsconfig.jsonを使用する場合

{ "compilerOptions": { "target": "ES2016" } "files": [] }

ECMAScript数値 "es6"、 "es7"、 "es8"またはリリース年 "ES2015"、 "ES2016"のいずれかを使用できます。 、「ES2017」

ESNextサポートされている最新のES提案機能をターゲットにします。

1
Aung Zan Baw

Visual Stido 2017を使用していますか?
1- Solution Explorer>右クリックしてプロジェクト
2- [追加]> [新しいアイテム]
3-(検索セクション>これを入力> TypeScript)
4-「TypeScript Json Configuration File」を選択します

それでおしまい
このステップの最後に、tsconfig.jsonがプロジェクトに追加され、デフォルトセットがES5に適用されます

何も変更する必要はありません。プロジェクトを再コンパイルするとエラーが発生します。

1
Kursat Turkay

Tsc myTS.ts --target ES5を使用してみてください

これは、TypeScriptがECMA script 5コンパイラをTragetする必要があるためです。

ここでは、スイッチをtype scriptコンパイラに渡して、ECMAScriptファイルをターゲットにする必要があります。それを行うには、ターミナルに以下のコードを入力します

tsc(tsファイル).ts-ES5をターゲットにして、bulid jsファイルを実行します

ノード(jsファイル)

0
Menik Tennakoon

Visual Studio CodeでTypeScriptコードをコンパイルしようとすると、同じ問題が発生しました。これにより問題が解決しました。

1)tsconfig.json-targetcompilerOptionsを追加します。

{
    "compilerOptions": {
        "target": "es5",  // <-- here!
        "module": "commonjs",
        "sourceMap": true
    }
}

2)tasks.json-target引数を追加します。

{
    "version": "2.0.0",
    "tasks": [
        {
            "taskName": "build",
            "type": "process",
            "command": "tsc",
            "args": [
                "ts/Program.ts",
                "--outDir", "js",
                "--sourceMap",
                "--watch",
                "--target", "es5"  // <-- here!
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation": {
                "reveal": "always"
            },
            "problemMatcher": "$tsc"
        }
    ]
}
0