Angular 获取输入类型并将其转换为角度

Angular 获取输入类型并将其转换为角度,angular,Angular,我正在将@Input()元素变量传递给app子组件组件 <app-child [element]="element"></app-child> 首先,如果只允许使用红色、蓝色和绿色值,那么将元素声明为这样可能会更清楚: @Input() element: Red | Blue | Green; 如何确定类型取决于红色、蓝色或绿色的类型。如果它们是类,则可以使用trustyinstanceof运算符: if (this.element instanceof Red) {

我正在将
@Input()元素
变量传递给
app子组件
组件

<app-child [element]="element"></app-child>

首先,如果只允许使用红色、蓝色和绿色值,那么将元素声明为这样可能会更清楚:

@Input() element: Red | Blue | Green;
如何确定类型取决于红色、蓝色或绿色的类型。如果它们是类,则可以使用trusty
instanceof
运算符:

if (this.element instanceof Red) {
    const red: Red = this.element; // no cast necessary in if-block
}
如果它们是接口,那就不起作用了,因为typescript接口在JavaScript的转换中无法生存。你认为:

if((this.element).reddishMember){
const red=this.element;
}

首先,如果只允许使用红色、蓝色和绿色值,那么将元素声明为:

@Input() element: Red | Blue | Green;
如何确定类型取决于红色、蓝色或绿色的类型。如果它们是类,则可以使用trusty
instanceof
运算符:

if (this.element instanceof Red) {
    const red: Red = this.element; // no cast necessary in if-block
}
如果它们是接口,那就不起作用了,因为typescript接口在JavaScript的转换中无法生存。你认为:

if((this.element).reddishMember){
const red=this.element;
}

你是什么意思?你能不能对你要解决的问题给出一个不那么抽象的说明?我添加了一个ChildComponent.ts代码。这并没有演示任何强制转换。关于确定类型,您是否阅读过例如?如果它可以是
蓝色
红色
绿色
为什么要将其键入
任意
?你最好不要使用TS。如果它可以是蓝色、红色或绿色,那么应该键入什么?看到问题了吗?“联合”类型,是的;我建议你多读一读那一页。你是什么意思?你能不能对你要解决的问题给出一个不那么抽象的说明?我添加了一个ChildComponent.ts代码。这并没有演示任何强制转换。关于确定类型,您是否阅读过例如?如果它可以是
蓝色
红色
绿色
为什么要将其键入
任意
?你最好不要使用TS。如果它可以是蓝色、红色或绿色,那么应该键入什么?看到问题了吗?“联合”类型,是的;我建议你多读那一页。