加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

React项目从Javascript到Typescript的迁移经验总结

发布时间:2019-05-11 01:58:31 所属栏目:建站 来源:wuming
导读:抛转引用 现在越来越多的项目放弃了javascript,而选择拥抱了typescript,就比如我们熟知的ant-design就是其中之一。面对越来越火的typescript,我们公司今年也逐渐开始拥抱typescript。至于为什么要使用typescript?本文不做深入探讨。 这篇文章比较全面

这个解决很简单,去tsconfig配置一下即可。

  1. {  
  2.    "compilerOptions":{  
  3.         "jsx": "react"  
  4.    }  
  5. }  

jsx这个配置项有三个值可选择,分别是"preserve","react-native"和"react"。在preserve和react-native模式下生成代码中会保留JSX以供后续的转换操作使用(比如:Babel)。另外,preserve输出文件会带有.jsx扩展名,而react-native是.js拓展名。react模式会生成React.createElement,在使用前不需要再进行转换操作了,输出文件的扩展名为.js。

webpack里面配置的alias无法解析

  1. module.exports = {  
  2.     //省略部分代码...  
  3.     resolve: {  
  4.         alias:{  
  5.           '@':path.join(__dirname,'../src')  
  6.         }  
  7.         //省略部分代码...      
  8.     },  
  9.     //省略部分代码...     

这里需要我们额外在tsconfig.json配置一下。

  1. {  
  2.     "compilerOptions":{  
  3.         "baseUrl": ".",  
  4.         "paths": {  
  5.           "@/*":["./src/*"]  
  6.         }   
  7.     }  
  8. }  

具体如何配置,请看typescript的文档,我就不展开介绍了,但是要注意的是baseUrl和paths一定要配合使用。

https://www.tslang.cn/docs/ha...

无法自动添加拓展名而导致找不到对应的模块

原先我们在webpack里是这么配置的:

  1. module.exports = {  
  2.     //省略部分代码...   
  3.     resolve: {  
  4.         //省略部分代码...   
  5.         extensions: ['.js', '.jsx', '.json']  
  6.     },  
  7.     //省略部分代码...   
  8. }  

但是我们项目里所有.js和.jsx的文件都改成了.ts和.tsx文件,因此配置需要调整。

  1. {  
  2.     //省略部分代码...   
  3.     resolve: {  
  4.         //省略部分代码...   
  5.         extensions: ['.ts','.tsx','.js', '.jsx', '.json']  
  6.     },  
  7.     //省略部分代码...   
  8. }  

Could not find a declaration file for module '**'

这个比较简单,它提示找不到哪个模块的声明文件,你就装个哪个模块的就好了,安装格式如下:

  1. yarn add @types/** 

举个🌰,如果提示Could not find a declaration file for module 'react',那你应该执行如下命令:

  1. yarn add @types/react 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读