динамичекское поле будет string | number? Хочу избавиться от as any
interface IForProps<IItem, IKey> {
keyField: IKey;
each: Array<IItem>;
fallback?: () => JSX.Element;
children: (item: IItem, key: string | number) => JSX.Element;
}
function For<IItem, IKey extends keyof IItem>({ each, fallback, children, keyField }: IForProps<IItem, IKey>) {
if (!each) return typeof fallback === 'function' ? fallback() : null;
return each.map((item: IItem) => children(item, item[keyField] as any));
}
Супер, благодарю!
Обсуждают сегодня