@TOC
问题
背景:
报错信息
1. 运算符“<”不能应用于类型“boolean”和“RegExp”。ts(2365)
2. 未终止的正则表达式字面量。ts(1161)
报错代码
export function IconCloud({ iconSlugs }: DynamicCloudProps) {
// 使用 useState 钩子初始化 data 状态,类型为 IconData 或 null
const [data, setData] = useState<IconData | null>(null);
// 使用 useTheme 钩子获取当前主题
const { theme } = useTheme();
// 使用 useEffect 钩子在组件挂载时或 iconSlugs 变化时获取图标数据
useEffect(() => {
fetchSimpleIcons({ slugs: iconSlugs }).then(setData);
}, [iconSlugs]);
// 使用 useMemo 钩子缓存渲染的图标,避免不必要的重新渲染
const renderedIcons = useMemo(() => {
// 如果没有数据,返回 null
if (!data) return null;
// 遍历图标数据并渲染每个图标
return Object.values(data.simpleIcons).map((icon) =>
renderCustomIcon(icon, theme || "light"),
);
}, [data, theme]);
//=========报错/=========
// 返回一个包含图标云的 JSX 元素
return (
<Cloud {...cloudProps}>
{renderedIcons}
</Cloud>
);
//=========报错/=========
}
问题截图
解决方案
修改文件的.ts后缀为tsx
问题解决
总结
- tsx 和ts后缀 对于代码检查的规范不同, 文件中是 tsx代码不兼容,导致提醒报错
- 目前来看, 最大的困难报错还是文件本身或者目录, 这种问题及时AI介入, 也没有办法理解清楚上下文
另外打个广告, 欢迎大家加我飞书或者vx扩列, 什么都可以聊,比较open, 希望能认识一些新朋友~ www.cnblogs.com/DarkChink/p…