| layout |
|
|---|
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.
}{% hint style="info" %}
as operator will keep the same kind of reference, that is ref<T> to ref<U> and wref<T> to wref<U>.
{% endhint %}