我正在尝试使用此处的ImageURISource
类型https://github.com/facebook/react-native/blob/26684cf3adf4094eb6c405d345a75bf8c7c0bf88/Libraries/Image/ImageSource.js#L15
type ImageURISource = {
uri?: string,
bundle?: string,
method?: string,
headers?: Object,
body?: string,
cache?: 'default' | 'reload' | 'force-cache' | 'only-if-cached',
width?: number,
height?: number,
scale?: number,
};
export type ImageSource = ImageURISource | number | Array<ImageURISource>;
然而,我们看到它作为一个联盟和其他两个东西一起导出。是否可以从一个工会中挑选一个?
我希望这样做:
$Pick<ImageSource, ImageURISource>
答案 0 :(得分:1)
它不是很漂亮,但您可以通过执行以下操作来使用细化来专门优化您想要的类型:
var source: ImageSource = {}
if (typeof source === "number" || Array.isArray(source)) throw new Error();
var uriSource = source;
type ImageURISource = typeof uriSource;
这里的缺点是,如果向union添加更多类型,您的代码将再次失败。
看起来你最好做一个PR来反应本地暴露那种类型。