如何将含any关键字的TypeScript代码转换为JavaScript代码
TypeScript 转原生 JavaScript 实现方法
核心转换规则
你给出的TS代码里两处带any的语法都属于TS专属的编译时类型标注,运行时不会产生任何实际执行逻辑,转换时直接移除TS类型语法即可,不需要新增额外业务逻辑:
- 第一处
function PrivateRoute({ children } : any )里的: any是TS的参数类型注解,作用是标记该入参接受任意类型值。JavaScript是动态类型语言,不需要编译阶段的类型声明,直接删除: any片段即可。 - 第二处
(location.state as any)?.from里的as any是TS的类型断言,作用是告诉TS编译器跳过对location.state的类型校验。JavaScript没有编译阶段的类型检查逻辑,直接删除as any片段即可;代码里的可选链操作符?.是ES2020原生支持的JS语法,可以直接保留。
转换后的等价原生JS代码
function PrivateRoute({ children }) { const accessToken = false; const loading = false; const navigate = useNavigate(); const location = useLocation(); const fromLocation = location.state?.from; const previousLocation = location.state ? fromLocation : { pathname: '/login' }; // 剩余原有业务逻辑和TS版本完全一致即可 }
如果你的代码运行环境不支持ES2020可选链语法,可以把
location.state?.from替换为location.state && location.state.from,功能完全等价。
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

