as<T extends JSObject> method

T? as<T extends JSObject>()

Implementation

T? as<T extends JSObject>() {
  if (isUndefinedOrNull) return null;

  if (T == JSArray) {
    return isA<JSArray>() ? this as T : null;
  } else if (T == JSArrayBuffer) {
    return isA<JSArrayBuffer>() ? this as T : null;
  } else if (T == JSTypedArray) {
    return isA<JSTypedArray>() ? this as T : null;
  } else if (T == JSInt8Array) {
    return isA<JSInt8Array>() ? this as T : null;
  } else if (T == JSInt8Array) {
    return isA<JSInt8Array>() ? this as T : null;
  } else if (T == JSUint8Array) {
    return isA<JSUint8Array>() ? this as T : null;
  } else if (T == JSUint8ClampedArray) {
    return isA<JSUint8ClampedArray>() ? this as T : null;
  } else if (T == JSInt16Array) {
    return isA<JSInt16Array>() ? this as T : null;
  } else if (T == JSUint16Array) {
    return isA<JSUint16Array>() ? this as T : null;
  } else if (T == JSInt32Array) {
    return isA<JSInt32Array>() ? this as T : null;
  } else if (T == JSUint32Array) {
    return isA<JSUint32Array>() ? this as T : null;
  } else if (T == JSFloat32Array) {
    return isA<JSFloat32Array>() ? this as T : null;
  } else if (T == JSFloat64Array) {
    return isA<JSFloat64Array>() ? this as T : null;
  } else if (T == JSPromise) {
    return isA<JSPromise>() ? this as T : null;
  } else if (T == JSDataView) {
    return isA<JSDataView>() ? this as T : null;
  } else {
    try {
      return this as T;
    } catch (_) {
      return null;
    }
  }
}