用另一个通用接口初始化通用类型对象

时间:2020-08-16 04:17:11

标签: javascript reactjs typescript

我要为React上下文提供类型安全性。

我有这样的界面

interface Form<T> {
  inputTracker: (val: { name: string; value: T }) => void;
  errorTracker: (val: { name: string }) => boolean;
}

这是上下文的接口。我将其保留为通用名称,以便无论在哪里使用它,都可以为表单输入自定义类型。

现在,我想使用此接口初始化上下文,但是我很难过。

export const FormContext: Form<T> = createContext<Form<T>>({
  inputTracker: (val) => {},
  errorTracker: (val) => true,
});

我似乎找不到一种将另一个通用变量赋予FormContext类型的方法,以便可以传递给Form。 我需要这种类型的界面,因为我想在很多地方使用这种上下文。

const {inputTracker} = useContext<CustomType>(FormContext);

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不确定我是否完全理解您的要求。这是您要找的吗?

CodeSandbox link

df[~df.index.isin(df.groupby(['a','b'])['c'].idxmax())]