title: Property 'uri' does not exist on type 'ImageSourcePropType'
body: <p>I'd like to wrap the image component of react-native. However, an error message appears saying that 'uri' Property does not exist. Why does this happen?</p>
  <pre class="lang-js prettyprint-override"><code>import React from 'react';
  import { Image as DefaultImage, ImageProps } from 'react-native';
  import { PromiseFn, useAsync } from 'react-async';
  
  type ImageSize = {
    width: number;
    height: number;
  };
  
  const getImageSize = (uri: string) =&gt; {
    return new Promise&lt;ImageSize&gt;((resolve, reject) =&gt; {
      DefaultImage.getSize(
        uri,
        (width, height) =&gt; {
          resolve({ width, height });
        },
        (error) =&gt; {
          reject(error);
        }
      );
    });
  };
  
  const promiseFn: PromiseFn&lt;ImageSize&gt; = async ({ uri }) =&gt;
    await getImageSize(uri);
  
  export function Image(props: ImageProps) {
    const { source } = props;
    const { data, error, isPending } = useAsync&lt;ImageSize&gt;({
      promiseFn: promiseFn,
      uri: source.uri, // Property 'uri' does not exist on type 'ImageSourcePropType'.
                       // Property 'uri' does not exist on type 'number'.ts(2339)
    });
  
    return (
      &lt;DefaultImage
        style={[{ width: data?.width, height: data?.height }, props.style]}
        {...props}
      /&gt;
    );
  }
  </code></pre>
  <p>I tried a different method, but there's another error.</p>
  <pre class="lang-js prettyprint-override"><code>const isImageURISource = (
    source: ImageURISource | ImageURISource[] | ImageRequireSource
  ) =&gt; {
    if ('uri' in source) {
      return source; // The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter.ts(2361)
    }
  };
  </code></pre>