使用Ant Design 4.21.7开发Power BI自定义视觉对象遇TSLint错误
问题
在Power BI自定义视觉对象中使用Ant Design 4.21.7版本时,触发以下TypeScript/TSLint错误:
ERROR in /node_modules/antd/lib/input/Input.d.ts [tsl] ERROR in /node_modules/antd/lib/input/Input.d.ts(17,11) TS1110: Type expected. ERROR in /node_modules/antd/lib/input/Input.d.ts [tsl] ERROR in /node_modules/antd/lib/input/Input.d.ts(17,27) TS1005: ';' expected. ERROR in /node_modules/antd/lib/input/Input.d.ts [tsl] ERROR in /node_modules/antd/lib/input/Input.d.ts(17,28) TS1128: Declaration or statement expected. ERROR in /node_modules/antd/lib/input/Input.d.ts [tsl] ERROR in /node_modules/antd/lib/input/Input.d.ts(18,1) TS1128: Declaration or statement expected.
报错指向的代码第17行是[key: \data-${string}`]: string;`,完整代码如下:
export interface InputProps extends Omit<RcInputProps, 'wrapperClassName' | 'groupClassName' | 'inputClassName' | 'affixWrapperClassName'> { size?: SizeType; disabled?: boolean; status?: InputStatus; bordered?: boolean; [key: `data-${string}`]: string; }
当前使用的tslint.json配置:
{ "extends": "tslint-microsoft-contrib/recommended", "rulesDirectory": [ "node_modules/tslint-microsoft-contrib" ], "rules": { "no-relative-imports": false } }
解决方法
问题核心
报错根源是AntD 4.21.7的类型定义使用了模板字面量类型(data-${string}这类写法),该特性仅支持TypeScript 4.1及以上版本。你的项目要么TS版本低于4.1,要么TSLint错误地校验了第三方依赖的类型文件。
具体解决方案
- 升级TypeScript版本:把项目的TypeScript升级到4.1.x或更高版本,让编译器能识别模板字面量类型。修改
package.json中的typescript依赖版本后,执行npm install或yarn install完成升级。 - 排除第三方依赖的TSLint校验:第三方包的类型文件不需要用你的TSLint规则校验,在
tslint.json中添加配置跳过node_modules目录:{ "extends": "tslint-microsoft-contrib/recommended", "rulesDirectory": [ "node_modules/tslint-microsoft-contrib" ], "rules": { "no-relative-imports": false }, "linterOptions": { "exclude": [ "node_modules/**/*.d.ts" ] } } - 降级AntD版本(备选):如果升级TS和Power BI自定义视觉存在兼容性冲突,可以将AntD降级到4.19.x及以下版本,这些版本还未使用模板字面量类型,能适配较低TS版本。执行
npm install antd@4.19.5(或其他符合要求的版本)即可。
内容的提问来源于stack exchange,提问作者somsam43
相关产品推荐
相关产品推荐

