React DataTable报TypeScript错误:Parameter 'row'隐式具有'any'类型
解决React数据表格中TypeScript隐式any类型错误
这个错误是因为TypeScript无法自动推断row参数的类型,默认将其视为any,而在严格类型检查模式下,隐式any是不被允许的。以下是两种实用的解决方式:
方法1:直接给row参数显式指定类型
先定义表格数据对应的类型接口,比如假设你的数据是影视条目:
// 定义数据类型接口 interface Movie { title: string; year: number; }
然后在selector函数中给row标注类型:
const columns = [ { name: 'Title', selector: (row: Movie) => row.title, }, { name: 'Year', selector: (row: Movie) => row.year, }, ];
方法2:给columns数组定义通用列类型(更规范)
如果使用第三方数据表格库(比如react-data-table-component),可以直接导入库提供的Column类型;如果是自定义表格,也可以自己定义通用列类型:
// 自定义通用列类型(或从第三方库导入) interface Column<T> { name: string; selector: (row: T) => string | number; // 根据实际返回值调整类型 } // 定义数据类型 interface Movie { title: string; year: number; } // 给columns数组指定类型,row会自动推导为Movie类型 const columns: Column<Movie>[] = [ { name: 'Title', selector: row => row.title, }, { name: 'Year', selector: row => row.year, }, ];
额外建议
同时给表格的数据源数组也指定对应类型,保证类型一致性:
const rows: Movie[] = [ { title: '盗梦空间', year: 2010 }, { title: '星际穿越', year: 2014 }, ];
内容的提问来源于stack exchange,提问作者JOCKEY
相关产品推荐
相关产品推荐

