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

question-closed Sprawdzanie typu - Typescript

Konkurs Mistrz Programowania
+1 głos
324 wizyt
pytanie zadane 15 maja 2022 w JavaScript przez Bakkit Dyskutant (7,600 p.)
zamknięte 16 maja 2022 przez Bakkit

Cześć mam taki typ:

type TYP = 'STRING_1' | 'STRING_2' | 'STRING_3';

Oraz zmienną typu string o nazwie 

jakas_zmienna

Jak mogę sprawdzić czy typ tej zmiennej pasuje do typu TYP?

 

Oczekuję takiego rezultatu:

if (warunek sprawdzający tym) {
    // wykonuje jakąś akcje
}

 

komentarz zamknięcia: https://forum.pasja-informatyki.pl/566407/sprawdzanie-typu-typescript?show=566409#a566409

1 odpowiedź

+4 głosów
odpowiedź 15 maja 2022 przez Wiciorny Ekspert (282,600 p.)
wybrane 16 maja 2022 przez Bakkit
 
Najlepsza

Nie można używać samego  typeof podczas wykonywania programu  do sprawdzania typów danego interfejsu, które istnieją tylko w czasie kompilacji. Zamiast tego możesz napisać funkcje która w tym pomoże 

const constValuesOfType = ['STRING_1', 'STRING_2' , 'STRING_3']
type TYPE = (typeof constValuesOfType)[number];
const isYourType = (x: any): x is TYPE => constValuesOfType.includes(x);

if (isYourType(twoja_zmienna)) {
  // cos 
}

https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates

1
komentarz 16 maja 2022 przez Bakkit Dyskutant (7,600 p.)
Działa, muszę się jeszcze nieco podszkolić z TypeScript'a.

Dziękuję bardzo.

Podobne pytania

0 głosów
1 odpowiedź 408 wizyt
0 głosów
0 odpowiedzi 199 wizyt
pytanie zadane 4 października 2023 w JavaScript przez reaktywny Nałogowiec (46,230 p.)
0 głosów
0 odpowiedzi 717 wizyt
pytanie zadane 7 września 2022 w JavaScript przez niezalogowany

93,655 zapytań

142,576 odpowiedzi

323,091 komentarzy

63,172 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

Kursy INF.02 i INF.03
...