Angular 18:条件所需输入

问题描述 投票:0回答:1

有没有办法要求基于另一个值的输入? 我需要添加一个输入,仅当使用模型 API(而不是 @Input 装饰器)未填充另一个输入时才需要该输入(反之亦然)。

我们通过在 ngOnInit 中添加一个条件并在两个输入未定义时抛出错误来添加此行为,但我正在寻找一种“更好”和“干净”的方法来实现它。如果 Angular 具有用于此类设置的内置功能?

感谢您的帮助!

angular typescript
1个回答
0
投票

使用单个必需输入(其模型的输入方式是根据其他属性的值生成所需的子属性)怎么样?

类似:

interface InputBase {
  fruitType: 'apple' | 'banana';
  fruitColor?: string; // notice that this is optionnal in the base interface
}

interface InputApple extends InputBase {
  fruitType: 'apple';
  fruitColor: string; // notice that this is now required if fruitType value is 'apple'
}

interface InputBanana extends InputBase {
}

export type InputType = InputBanana | InputApple; // this is the type you use

这样,您的输入将通过 TypeScript 验证确保仅当另一个值为 x 时才需要某些属性。

© www.soinside.com 2019 - 2024. All rights reserved.