如何在 Angular @Input 中只接受预定义的值

Hel*_*rto 4 parameters enums typescript angular

我的问题是我在 a 中收到一个字符串值作为组件的参数,但我想限制可以用作参数的值,就像 enum

我用

@Input() type: string = '';
Run Code Online (Sandbox Code Playgroud)

但是在组件中,一切都可以引入到type属性中,我需要将其限制为只有 3 个选项,正如我之前所说的,比如Enum

rju*_*tin 7

尝试这个:

@Input() type: 'acceptable1' | 'acceptable2' | 'acceptable3';
Run Code Online (Sandbox Code Playgroud)

这使用允许任何列出的类型的打字稿联合类型。a 或 b 或 c 等

或使用TS 枚举


Sur*_*yan 5

创建一个枚举并将您的类型设置input为枚举。如果它是枚举中的值之一,则您的值将被传递,否则将是undefined

enum MyEnum {
    First,
    Second,
    Third
}

@Input() type: MyEnum;
Run Code Online (Sandbox Code Playgroud)