web-dev-qa-db-fra.com

Pourquoi erreur dans Angular 5 as: n'a pas de membre exporté 'OpaqueToken'.?

J'ai une application Angular 4, que je suis en train de mettre à niveau vers Angular 5. 

Je reçois l'erreur suivante.

ERREUR dans src/app/application/services/généré/variables.ts (1,10): erreur TS2305: Module '"..../node_modules/@ angular/core/core"' n'a pas de membre exporté 'OpaqueToken'.

L'extrait de code est: 

import { OpaqueToken } from '@angular/core';

export const BASE_PATH = new OpaqueToken('basePath');
export const COLLECTION_FORMATS = {
    'csv': ',',
    'tsv': '   ',
    'ssv': ' ',
    'pipes': '|'
}

Ce code a été généré par swagger editor .

2

inclut les éléments suivants dans le fichier package.json 

"@angular/flex-layout": "^2.0.0-beta.12"

Essayez de supprimer le dossier node_modules, supprimez le fichier package.json, puis exécutez la commande suivante. J'espère que ce problème a été résolu.

npm install

veuillez vous référer au lien suivant pour ce problème https://github.com/angular/flex-layout/issues/494#issuecomment-343355178

2
shailesh

L'OpaqueToken a été enlevé. Vous devez utiliser InjectionToken à la place… .. Je suis confronté au même problème… .. À ce moment, la "meilleure" solution consiste à remplacer les jetons après chaque génération de code. Mais ce n'est pas une solution permanente. 

Merci de contribuer à ce problème: https://github.com/swagger-api/swagger-codegen/issues/7324

2
user9112752

Veuillez consulter https://github.com/swagger-api/swagger-codegen/issues/7324#issuecomment-368548716

Si vous souhaitez utiliser Angular 5, vous devez utiliser la version de swagger-codegen qui prend en charge le changement de version.

Que cette fois la version stable la plus basse de cette version est 2.3.0

En cela, vous pouvez définir (pour la configuration personnalisée) ngVersion à la version de votre choix. Tant que semVer est supérieur à 4.0, il générera un jeton d'injection au lieu de OpaqueToken.

1
KeniSteward

Cela s'est produit lorsque j'ai mis à niveau vers la version angulaire 5.2.0. J'ai fini par avoir à faire ce qui suit:

package.json édité: je devais changer ma version pour @angular/compiler-cli. Dans mon cas, je devais le ramener à la version 5.2.0, car il est passé à la version 5.2.10.

Suppression du répertoire node_modules.

Ran: npm install

Installé: npm install @angular/flex-layout.

0
Ben