React TS实现进度条遇隐式any错误,已声明接口仍报错
问题原因与解决办法
- 你声明的Props接口只负责约束组件外部传入的属性,而
previousTimestamp这类内部变量是组件函数自己的局部变量,TypeScript不会自动推断它们的类型(尤其是初始值没明确类型时),所以会触发隐式any的报错。 - 解决起来很简单,给这些内部变量显式声明类型就行:
比如原来的代码如果是:
改成带类型声明的版本:let previousTimestamp;
如果是在动画回调里使用,还可以直接给回调参数加类型,帮TypeScript更准确推断:let previousTimestamp: number | undefined;const animate = (timestamp: number) => { if (!previousTimestamp) previousTimestamp = timestamp; const elapsed = timestamp - previousTimestamp; // 后续进度条更新逻辑 } - 注意:如果你的项目开了严格模式(默认开启
strictNullChecks),还要处理previousTimestamp可能为undefined的情况,避免运行时出现错误。
内容的提问来源于stack exchange,提问作者user18943198
相关产品推荐
相关产品推荐

