typescript - Constante Statice: cum?


Încerc să creez un fișier de constante într-o aplicație TypeScript. Ideea este că atunci când este apelat ServiceConstants.AUTH_SERVICE_TOKEN, acesta va returna un obiect token opac.

Am încercat două implementări:

ServiceConstants.ts ca un namespace

export namespace ServiceConstants {

    export const AUTH_SERVICE_TOKEN: OpaqueToken = new OpaqueToken('AuthService');

}

ServiceConstants.ts ca o clasă

export class ServiceConstants {

    public static AUTH_SERVICE_TOKEN: OpaqueToken = new OpaqueToken('AuthService');

}

Totuși, dacă apelez acest obiect, obțin un

Eroare TypeError neintreruptă: Nu se poate citi proprietatea 'AUTH_SERVICE_TOKEN' din indefinit

Cum pot inițializa AUTH_SERVICE_TOKEN astfel încât să pot pur și simplu să apelez ServiceConstants.AUTH_SERVICE_TOKEN fără a fi nevoie să inițializez variabila și fără a fi nevoie să creez un obiect nou? Am crezut că spațiul de nume ar fi fost suficient, dar se pare că nu este.

Noroc

JT

Răspuns #1

Modul în care TypeScript tratează acest lucru este că este necesar să scrieți ServiceConstants.ts nici ca o clasă, nici ca un spațiu de nume. Pur și simplu un fișier cu următoarea linie unică este suficient:

ServiceConstants.ts

export let AUTH_SERVICE_TOKEN: OpaqueToken = new OpaqueToken('AuthService');

Apoi, în fișierul care apelează, pur și simplu

somefile.ts

import {AUTH_SERVICE_TOKEN} from './ServiceConstants';

console.log(AUTH_SERVICE_TOKEN);

Sper că te ajută

JT