Всем привет, вопрос такой, есть интерфейс
ITableColumn, нужно чтобы его функция
render была типизирована строго в зависимости от того, какой ключ указан в
key.
interface IData {
name: string;
age: number;
id: string;
}
const data: IData[] = [];
interface ITableColumn<DataInterface extends object, Key extends keyof DataInterface = keyof DataInterface> {
key: Key;
title: React.ReactNode;
hasSort?: boolean;
render?: (item: DataInterface[Key]) => React.ReactNode;
}
const columns: ITableColumn<IData>[] = [
{
key: 'id',
title: 'ID',
},
{
key: 'name',
title: 'Name',
// Нужно чтобы Item был - string, а не string | number
render: (item) => <b>{item}</b>,
},
{
key: 'age',
title: 'Age',
// Нужно чтобы Item был - number, а не string | number
render: (item) => <b>{item}</b>,
},
]