Pour déclarer un fichier de constante, je le crée d'abord dans le même niveau d'arborescence que le composant où la constante est utilisée email.constants.ts et comme ceci:
import { EmailConstants } from './emails.constants';
Et je l'importe de cette façon depuis le contrôleur:
export class EmailConstants {
public static MAXIMUM_NUMBER = 10;
}
Cette pratique est-elle bonne? Je pose la question ici car je ne trouve pas la réponse dans le style du guide officiel
3 Réponses :
Je vais le faire comme ceci:
EmailConstants.MAXIMUM_NUMBER
et
import * as EmailConstants from './emails.constants';
Donc, importez uniquement ce que vous utilisez, pas tout. p >
mais si vous voulez toujours tout utiliser, vous pouvez le faire de la même manière que vous l'avez fait, changez-le un peu:
import { MAXIMUM_NUMBER } from './emails.constants';
Ensuite, vous pouvez toujours utiliser
export const MAXIMUM_NUMBER = 10;
même vous pouvez utiliser export const EmailConstants = {MAXIMUM_NUMBER: 10, MINIMUN_NUMBER: 1} et importer {EmailConstants} depuis './configuration'
Corriger @Eliseo
Essayez-vous d'éviter les collisions de noms en "mettant le fichier au même niveau de l'arborescence"? Si tel est le cas, envisagez Injection et injection de dépendances Jetons .
Il est recommandé de créer un fichier séparé pour vos constantes . Où, il pourrait y avoir plusieurs scénarios, dans lesquels Je préfère / recommande le deuxième parmi les suivants -
1) Exportez chaque constante et importez au besoin; si vous n'avez pas trop de constantes.
export const constObj = { TEST: "testval", TEST2: "testval2" };Importer sous -
import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class AppConstants { public TEST = "testval"; public TEST2 = "testval2"; }2) Créer et exporter un seul Classe Injectable si vous en avez trop constantes et souhaitez une importation sans tracas .
Ainsi, votre app.constants.ts serait -
import { TEST, TEST2 } from './app.constants';
J'utiliserais plutôt l'injection de dépendance
Je pense que vous pouvez obtenir plus d'avis dans révision du code
Voici une solution utilisant un fichier séparé pour les constantes, où vous devez simplement prendre une instance d'une classe et accéder à n'importe quelle constante