项目场景:
React前端应用程序中,将XXXX.jsx文件修改为XXXX.tsx后,程序报错。
./src/common/XXXX.jsx 错误:ENOENT:没有这样的文件或目录,打开’/code/src/common/XXXX.jsx’
问题描述
因为,创建项目时,没有按照 typescript模板进行创建,所以,只将文件重命名为*.tsx时,编译器仍然无法去按照typescript项目的方式去解析项目。也就是说,缺少让编译器去按照typescript项目的方式去解析项目的配置文件。
原因分析:
因为原来程序中使用的*.js或者*.jsx,现在只改为*.tsx后,编译器并没有给出如何编译和使用这些tsx文件。所以,会报错。
解决方案:
1.在项目中添加tsconfig.json文件,告诉编译器,如何编译和运行项目。
2.根据错误信息,添加相应的文件,比如:reportWebVitals.ts等。
3.如果你的某个tsx文件,引入了jsx文件后,导致文件module无法被发现,则需要将引入的*.jsx文件一并重命名为相应的*.tsx文件。如下所示,将UserList.jsx改为UserList.tsx。
Could not find a declaration file for module ‘…/…/views/sandbox/user-manage/UserList’. ‘D:/reactapps/dreamlemonmanager/src/views/sandbox/user-manage/UserList.jsx’ implicitly has an ‘any’ type.