2016-03-01 14 views
11

Czy istnieje jakiś sposób, aby utworzyć klasę statyczną w maszynopisie, node.jsstatyczna klasa w maszynopisie

Chcę utworzyć klasę statyczną, aby wszystkie stałe i ciąg w tym.

jaki może być najlepszy sposób na zrobienie tego?

+2

Czy jest jakiś problem z używaniem obiektu? – Marie

Odpowiedz

29

Oczywiście można zdefiniować klasę z właściwości statycznych:

export class Constants { 
    static MAX_VALUE = 99999; 
    static MIN_VALUE = 0; 
} 

następnie użyć go, gdy trzeba:

import { Constants } from '../constants'; 
console.log(Constants.MAX_VALUE); 
+0

to jest coś, czego szukałem, dzięki człowieku –

+0

@ArunTyagi Nie ma za co. –

7

Możesz umieścić swoje zmienne i funkcje w module, co oznacza, że ​​nie trzeba tworzyć instancji.

module constants { 
    export var myValue = 'foo'; 

    export function thisIsAStaticLikeFunction() { 
     console.log('function called'); 
    } 
} 

..... 
console.log(constants.myValue); 

Naprawdę nie ma czegoś takiego jak prawdziwa klasa statyczna, ale jest ona bliska odtworzenia jej.

+0

+1 Bardzo dobrze, dziękuję! Rozwiązałem mój problem dostępu do statycznego elementu podklasy jak: 'App.Commands.mainMenuCommand'. – IngoB

1

Teraz można użyć wyliczenia tak:

export enum Numbers { 
    Four = 4, 
    Five = 5, 
    Six = 6, 
    Seven = 7 
} 

Następnie użyj go:

import { Numbers } from './Numbers'; 
Numbers.FIVE 
+0

Powinna być zaakceptowaną i poprawną odpowiedzią. Inni mieli rację co do równoważności klas statycznych w maszynopisie, ale do celów otwieracza wątków powinno to być wyjście. –