我试图创建一个函数,该函数的返回类型为React.ComponentType
-并返回React.forwardedRef
-有条件地通用分配的道具。
我收到类型错误ts(2322)
:
无法复制以下代码:
import * as React from "react";
import {Observable, View } from "react-nativescript/dist/client/ElementRegistry";
interface A {
someProp: string;
}
interface B {
someOtherProp: string;
}
type AProps<T> = T extends View ? A : null;
type BProps<T> = T extends View ? B : null;
type Props<T> = AProps<T> & BProps<T>;
const create = <T extends Observable>(): React.ComponentType<Props<T>> => {
return React.forwardRef(null);
}
我已将其隔离到T extends View ? A : null
和T extends View ? B : null
。如果我AProps = A
和BProps = B
-或直接在React.ComponentType中使用接口,则类型检查错误将被删除。
我需要有条件地分配道具。如何在摆脱类型错误的同时拥有它?