Inovua React Data Grid设置textAlign列属性出现TypeScript报错如何解决
问题原因
该报错是TypeScript类型校验不通过导致的,并非语法错误。
你传入的textAlign: "center"本身取值符合官方要求,但TypeScript默认会将未声明类型的对象内的字符串字段推导为广义的string类型,而Inovua RDG的列定义类型中textAlign仅接受"end" | "left" | "center" | "right" | "start"这几个固定字符串字面量类型,二者类型不匹配因此触发报错。
解决方案
你可以任选以下一种方法修复:
- 给整个列配置数组加上官方提供的列类型注解
// 社区版导入路径,企业版替换为对应包路径即可 import { TypeColWithIdProperty } from '@inovua/reactdatagrid-community/types' // 直接给数组声明类型 const columns: TypeColWithIdProperty[] = [ { name: "id", header: "Id", defaultVisible: false }, { name: "simId", header: "Sim ID", textAlign: "center", defaultFlex: 0.75 }, // 其余列配置 ]
- 单独给
textAlign的取值添加as const断言,告诉TypeScript该值是固定字面量而非普通字符串
{ name: "simId", header: "Sim ID", textAlign: "center" as const, defaultFlex: 0.75 }
- 给当前列对象整体加类型断言
{ name: "simId", header: "Sim ID", textAlign: "center", defaultFlex: 0.75 } as TypeColWithIdProperty
内容的提问来源于stack exchange,提问作者tprebenda
相关产品推荐
相关产品推荐

