Safe downcasting
The as
operator returns null
when a dynamic cast fails. You can use it combined with IsDefined
to perform safe downcasts. The following example shows how you can safe downcast a VehicleObject to a WheeledObject, a CarObject or a BikeObject:
let vehicle: ref<VehicleObject>;
let wheels = vehicle as WheeledObject;
if IsDefined(wheels) {
// vehicle is known to be a WheeledObject.
}
let car = vehicle as CarObject;
if IsDefined(car) {
// vehicle is known to be a CarObject.
}
let bike = vehicle as BikeObject;
if IsDefined(bike) {
// vehicle is known to be a BikeObject.
}
Last updated
Was this helpful?