typescript - Cum să accepți doar valori predefinite într-un @Input Angular


Problema mea aici este că primesc o valoare de tip șir în a ca parametru pentru un component, dar vreau să limitez valorile care pot fi folosite ca parametru, exact ca un enum

Eu folosesc

@Input() type: string = '';

Dar în componentă, totul poate fi introdus în proprietatea type și trebuie să limitez asta la doar 3 opțiuni, așa cum am spus mai devreme, ca un Enum

Răspuns #1

încearcă asta:

@Input() type: 'acceptable1' | 'acceptable2' | 'acceptable3';

Acest lucru folosește tipul de uniune TypeScript care permite oricărui dintre tipurile listate. a sau b sau c etc

sau folosește un enum TS

Răspunsul #2

Creează un Enum și setează tipul input-ului tău la enum. Valoarea ta va fi acceptată dacă este una dintre valorile din enum, altfel va fi undefined

enum MyEnum {
    First,
    Second,
    Third
}

@Input() type: MyEnum;