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";
}
}
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.
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.
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.
Mon fichier tsconfig.json
{
"compilerOptions": {
"target": "es5"
},
"include": [
"*.ts"
]
}
Et je le lance depuis la ligne de commande
tsc && node *.js
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.
Sous Windows, le
tsc --target es5 filename.ts
les options peuvent être: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'esnext'. (sans pour autant '')
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.
Essayez d’utiliser tsc myTS.ts --target ES5
en effet, TypeScript doit compiler le script Traget ECMA 5.
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)
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.
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"
}
]
}