面试题答案
一键面试设计思路
- 定义列配置接口:用于描述表格每一列的信息,包括列标题、数据字段、渲染函数等。
- 定义数据项接口:作为泛型参数,让表格可以适配不同类型的数据。
- 定义表格组件的整体接口:将列配置和数据项结合起来,确保类型安全。
关键类型定义代码
// 列配置接口
interface TableColumn<T> {
title: string;
dataIndex: keyof T;
render?: (value: T[keyof T], record: T, index: number) => React.ReactNode;
}
// 表格组件接口
interface TableProps<T> {
columns: TableColumn<T>[];
dataSource: T[];
}
在使用时,可以这样定义具体类型:
// 用户数据类型
interface User {
name: string;
age: number;
}
// 定义用户表格的列配置
const userColumns: TableColumn<User>[] = [
{
title: '姓名',
dataIndex: 'name'
},
{
title: '年龄',
dataIndex: 'age'
}
];
// 假设这是用户数据
const userDataSource: User[] = [
{ name: '张三', age: 20 },
{ name: '李四', age: 22 }
];
// 使用表格组件,确保类型安全
const tableProps: TableProps<User> = {
columns: userColumns,
dataSource: userDataSource
};