Angulaire Injectable décorateur - Attendu 0 arguments, mais il a obtenu 1
Je suis juste de commencer avec la base de tutoriel pour Anguleux, mais je fais face à un petit problème de compilation.
Je suis le tutoriel sur Angulaire du site web. Je suis coincé avec l'injection de dépendances en partie parce qu'il ne veut pas compiler.
Dans le tutoriel, il demande de créer un service avec :
ng generate service hero
Dans cette généré le service que vous avez un décorateur, comme ceci :
@Injectable()
Puis ils demandent d'ajouter un paramètre pour que décorateur, comme ceci :
@Injectable({
providedIn: 'root'
})
Quand j'essaie de le faire j'ai un Tapuscrit d'erreur me disant :
erreur TS2554: Attendu 0 arguments, mais j'ai reçu 1.
Les versions que j'utilise sont ceux-là :
Angular CLI: 1.7.4
Node: 9.5.0
OS: win32 x64
Angular: 5.2.10
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router
@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.5.3
webpack: 3.11.0
Aucune idée pourquoi il n'accepte pas le paramètre ?
Merci d'avance !
- Ce paramètre est nouveau. Voir blog.ninja-squad.com/2018/05/04/what-is-new-angular-6
- Le tutoriel vous faites référence doit être Angulaire 6. La prise en charge des paramètres dans le @Injectable est récemment mis en place.
- Si vous souhaitez continuer à utiliser le tutoriel, et de rester avec Angulaire de 5, puis de changer la version de la documentation stable (6.0.1) à la v5 dans la liste déroulante au bas de la zone de navigation de gauche (juste en dessous de l'API).
- Tout droit ! Merci beaucoup les gars 🙂
Vous devez vous connecter pour publier un commentaire.
C'est une nouvelle fonctionnalité dans Angulaire 6.
Vous avez deux options:
1) reportez-vous à l'angle de 5 documentation. (Comme @r-richards notes - changer la version de la documentation à la v5 dans la liste déroulante au bas de la zone de navigation de gauche.)
2) Mise à niveau de votre projet Angulaire de 6 à résoudre le problème
L'Angulaire guide de mise à niveau.
Vous devrez remplir un court formulaire en sélectionnant la version Angulaire et vous êtes sur la version à laquelle vous souhaitez mettre à niveau vers. Ensuite, il vous montre la liste des étapes nécessaires à suivre pour effectuer la mise à niveau. Vous devez suivre ce guide pour toutes les mises à jour. (Veuillez upvote avant de naviguer à l'extérieur) 🙂
https://update.angular.io/
Voici quelques notes que j'ai prises pendant la mise à niveau à partir Angulaire 5 Angulaire 6.
Votre kilométrage peut varier selon votre configuration. J'ai relié à un couple des articles ci-dessous qui m'ont aidé.
Mise à jour de npm (Node Package Manager)
Upgarde nœud
Pour les utilisateurs Windows et mac, la méthode la plus simple est avec le Nœud de l'installateur. Ou voir l'article ci-dessous pour linux/unix.
Upgarde Angulaire de la CLI, globalement et localement
Package de mise à jour.json
Mise À Jour @Angulaire/Core
Angulaire de la mise à jour du Matériel, si vous l'utilisez
Vérifier pour d'autres paquets qui peuvent être mis à niveau
Mise à jour de tous les paquets obsolètes
Ou mettre à jour un package spécifique
Vous pouvez avoir besoin de convertir le angulaires-cli.fichier json angulaire.json
Références:
La Mise À Niveau Du Nœud
http://www.hostingadvice.com/how-to/update-node-js-latest-version/
La Mise À Niveau Angulaire
https://vitalflux.com/upgrade-angular-5-app-angular-6/
Autres Étapes De Dépannage
https://stackoverflow.com/a/49811824/151325
J'ai aussi eu ce problème, et j'ai résolu il y compris le nom de la classe de service dans les "Fournisseurs" dans l'app.le module.ts.
comme ceci:
@Injectable({ providedIn: '???' })
décorateur est ce qui doit être fait, en général. Si vous avez besoin d'utiliser une version antérieure, ce que vous dites dans votre réponse, est de savoir comment vous devriez le faire.