我正在使用TypeScript,并希望检查JSX.Element
实例是否是另一个React组件的子类。
例如,如果我有Vehicle
组件和扩展它的Car
组件,那么给定从JSX.Element
组件创建的Car
,我想要知道它的React组件类是否来自某个组件。
e.g。
isDerivedFrom(jsx, Car) // Should return true
isDevivedFrom(jsx, Vehicle) // Should also return true
我注意到JSX.Element
公开了type
属性,该属性告诉我React组件的名称,但不告诉我它是否来自某个组件。
我怎样才能做到这一点?
答案 0 :(得分:-1)
您可以使用instanceof
运算符来完成该操作:
class Vehicle {
tires: number;
constructor(tires: number) {
this.tires = tires;
}
}
class Car extends Vehicle {
constructor() {
super(4);
}
}
class Cake {
public recipe: string;
}
const aCar: Car = new Car();
console.log(aCar instanceof Car); // true
console.log(aCar instanceof Vehicle); // true
console.log(aCar instanceof Cake); // false