web-dev-qa-db-fra.com

Les accesseurs ne sont disponibles que lorsque vous ciblez ECMAScript 5 et versions ultérieures

J'essaie d'exécuter ce code mais il me donne les erreurs suivantes:

Animal.ts (10,13): erreur TS1056: Les accesseurs ne sont disponibles que lorsque ciblant ECMAScript 5 et supérieur. Animal.ts (14,13): erreur TS1056: Les accesseurs ne sont disponibles que lorsque vous ciblez ECMAScript 5 et versions supérieures.

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";
    }
}
16
jagdish khetre

La seule chose qui a fonctionné pour moi a été de spécifier la Target sous macOS et Windows.

tsc --target es5 script.ts

Vous pouvez exécuter la commande sur votre terminal.

24
BilalReffas

essayez de configurer un fichier tsconfig.json dans votre projet:

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

cela indiquera au compilateur TypeScript de cibler une version spécifique.

10
loctrice

J'avais le même problème. Ce que je lis dans docs est que le fichier tsconfig.json est ignoré si vous spécifiez les fichiers.

 enter image description here

Mon fichier tsconfig.json

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

Et je le lance depuis la ligne de commande

tsc && node *.js
5
noWayhome

Je sais que c'est une vieille conversation, mais je pense que la solution ci-dessous pourrait être une commande très utile pour tous les développeurs.

Vous pouvez facilement résoudre le problème en utilisant cette commande dans votre terminal, votre invite de commande, Git Bash, etc.:

tsc --target ES2016 Animal.ts --watch

ou

tsc --target es5 Animal.ts --watch

--watch est facultatif et signifie que vous n'avez pas besoin de compiler votre code à chaque modification.

2

Sous Windows, le

tsc --target es5 filename.ts

les options peuvent être: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'esnext'. (sans pour autant '')

1
Honey Bee

Si vous traitez avec fichier unique vous pouvez le faire

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

Si vous voulez dans votre tsconfig.json pour la configuration complète du projet 

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

Vous pouvez utiliser ECMAScript numeric "es6", "es7", "es8" ou l'année de publication, par exemple "ES2015", "ES2016", "ES2017".

ESNext cible les dernières fonctionnalités proposées par ES prises en charge.

0
Aung Zan Baw

Essayez d’utiliser tsc myTS.ts --target ES5

en effet, TypeScript doit compiler le script Traget ECMA 5.

0

Ici, vous devez passer le commutateur pour écrire le script compiler, afin de cibler le fichier ECMAScript. Pour ce faire, entrez le code ci-dessous dans le terminal.

tsc (votre fichier ts) .ts --target ES5 et lancez votre fichier bulid js 

noeud (votre fichier js)

0
Menik Tennakoon

Vous utilisez Visual Stido 2017?
1- Explorateur de solutions> Clic droit sur le projet
2- Ajouter> Nouvel élément
3- (Section de recherche> tapez ceci> TypeScript)
4- Sélectionnez "TypeScript Json Configuration File"

c'est tout
à la fin de cette étape, tsconfig.json sera ajouté au projet avec le jeu par défaut appliqué à ES5.

vous n'avez rien à changer. Il suffit de recompiler votre projet et l'erreur disparaîtra.

0
Kursat Turkay

J'ai eu le même problème en essayant de compiler le code TypeScript avec Visual Studio Code .Cela a résolu le problème:

1) tsconfig.json - ajouter la target dans la compilerOptions:

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

2) tasks.json - ajouter l'argument 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