"TSearchInput"可以使用与"RotatingItemSearchInput"无关的任意类型进行实例化



我面临一个问题,我想让对象中的每个记录都有不同的值类型,但却出现了以下错误:

1-"TSearchInput"可以用任意类型实例化,该类型可能与"RotatingItemSearchInput"无关

2-"K"可以用任意类型实例化,该类型可能与"数字"无关

我创建了这个简单的演示:

class RotatingItemSearchInput {}
class OtherItemSearchInput {}
const rotatingItemService = (input: RotatingItemSearchInput) =>
new Promise((res: (val: number) => void) => res(1));
const otherItemService = (input: OtherItemSearchInput) =>
new Promise((res: (val: string) => void) => res('result'));
const filtersMap: Record<
string,
<TSearchInput, K>() => {
searchInput: TSearchInput;
search: (searchInput: TSearchInput) => Promise<K>;
}
> = {
rotatingItem: () => ({
searchInput: new RotatingItemSearchInput(),
search: (searchInput) => rotatingItemService(searchInput),
}),
otherItem: () => ({
searchInput: new OtherItemSearchInput(),
search: (searchInput) => otherItemService(searchInput),
}),
};

如果你能帮我解决这个问题,我将不胜感激。

游乐场

查看此

interface Obj<T, K> {
[key: string]: {
searchInput: T;
search: (val: T) => Promise<K>;
};
}

最新更新