1
resposta

Consistência entre arquivos environment.ts, environment.prod.ts e outros que possam existir.

Na aula onde o instrutor fala sobre esses arquivos que definem variáveis de ambiente, ele enfatiza que todos os arquivos devem ter as mesmas propriedades. Não seria o caso de criar uma interface para definir quais variáveis o objeto options deve ter?

Algo como:

// environments/environment.ts
let options: EnvironmentOptions = {
  production: false,
  apiURL: 'http://localhost:3000',
  /* ...  */
};

export const environment = options;

// environments/environment.prod.ts
let options: EnvironmentOptions = {
  production: true,
  apiURL: 'https://exemplo.com.br',
  /* ...  */
};

export const environment = options;

// interface em algum outro lugar
export interface EnvironmentOptions {
  production: boolean;
  apiURL: string;
  /* ...  */
}

Existe algum manual de boa prática que desaconselha isso ou posso fazer sem nenhum problema?

1 resposta

Opa, Leonardo. Você pode sim, criar uma interface/type para determinar a tipagem dos arquivos de environment. Eu costumo fazer isso bastate, e inclusive, nesse projeto do gatitobook, eu fiz também.

export interface Environment {

export interface Environment {
    production: boolean;
    url: string;
}

e nos arquivos de environment:

import { Environment } from './environment.interface';

export const environment: Environment = {
    production: false,
    url: 'SUA_URL_AQUI'
};