3
votes

Angular N - Quelle est la meilleure pratique pour déclarer un fichier constant?

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 commentaires

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


3 Réponses :


15
votes

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;


2 commentaires

même vous pouvez utiliser export const EmailConstants = {MAXIMUM_NUMBER: 10, MINIMUN_NUMBER: 1} et importer {EmailConstants} depuis './configuration'


Corriger @Eliseo



0
votes

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 .


0 commentaires

5
votes

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';

0 commentaires