• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

TypeScript jak zapisać typ klasy?

Mały hosting, OGROMNE możliwości
+2 głosów
715 wizyt
pytanie zadane 16 marca 2019 w JavaScript przez rafal.budzis Szeryf (86,360 p.)

Hej mam problem nie wiem jak zapisać typ klasy. Nie jej instancji ale samej klasy. 

class IFoo {
    static fieldA = 'text';
}

class Foo extends IFoo {

}

class Bar extends IFoo {

}

type AllTypes = keyof typeof allTypes;

const allTypes: {
    [key: string]: new () => IFoo;
} = {
    bar: Bar,
    foo: Foo,
}

Dokładnie chodzi mi o linijkę 

[key: string]: new () => IFoo;

Znalazłem ze można w taki sposób zapisywać konstruktor klasy jednak chciałem zapisać typ klasy ponieważ w każdej klasie mam statyczne pole. Gdy odwołuje się do statycznych pól allTypes['bar'].fieldA mam błąd mimo istnienia takiego pola statycznego.

2 odpowiedzi

+2 głosów
odpowiedź 16 marca 2019 przez adrian17 Mentor (354,880 p.)
wybrane 16 marca 2019 przez rafal.budzis
 
Najlepsza

Coś takiego?

const allTypes: {
    [key: string]: typeof IFoo;

 

komentarz 16 marca 2019 przez rafal.budzis Szeryf (86,360 p.)
Dokładnie o to chodziło dzięki ! Jakoś na to nie wpadłem ;D
0 głosów
odpowiedź 16 marca 2019 przez ScriptyChris Mędrzec (190,170 p.)

Nie pisałem w TypeScript ponad rok, ale kojarzę takie dwa zapisy:

Może któryś spełni Twoje oczekiwania.

Podobne pytania

0 głosów
1 odpowiedź 341 wizyt
pytanie zadane 24 stycznia 2021 w JavaScript przez Szyszka Gaduła (3,530 p.)
0 głosów
1 odpowiedź 366 wizyt
0 głosów
1 odpowiedź 302 wizyt
pytanie zadane 6 kwietnia 2020 w JavaScript przez onliniak Nowicjusz (190 p.)

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,258 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...