Create-React-App 的项目迁移到 TS 非常的简单,官网也有详细的迁移步骤 adding-typescript。,只需要简单的安装几个声明文件即可,即:
npm install --save typescript @types/node @types/react @types/react-dom @types/jest
# or
yarn add typescript @types/node @types/react @types/react-dom @types/jest
然后修改项目根目录的 index.js 为 index.tsx,项目中用到的第三方库,安装对应的声明文件即 @types/xxx
,项目人员写的代码,可通过 JS 升级到 TS 的三种策略 来修改让其能通过 TS 的检查。
然后重启项目,即可完成升级。如果你足够的细心,就会发现项目里多个两个文件,react-app-env.d.ts
和 tsconfig.json
。
而假如你通过下面命令:
$ npx create-react-app my-react-app --template typescript
即通过 React-Create-App 直接构建 TS 项目,你会发现相比 JS 项目也就多出来 react-app-env.d.ts
和 tsconfig.json
两个文件,看来这两个文件才是重点。
tsconfig.json
文件就不用解释了,用来约束项目 TS 的,我们重点来看看 react-app-env.d.ts
文件的作用。
如果你想更加了解 Webpack 如何结合 TS 搭建 React 开发环境的可以参考:Webpack5 搭建一个简易的 React+TS 开发环境
react-app-env.d.ts
文件的内容
文件的内容非常的简单,通过三斜线指令引入了模块 react-scripts
:
/// <reference types="react-scripts" />
更多关于三斜线指令的用法,参考:TS 的三斜线指令
再去看 react-scripts
模块文件之前,我们先去看看,Webpack 和 TS 结合是如何引入静态资源的。
Webpack 和 TS 结合如何使用非代码的静态资源
Webpack 的引导章节有关于这个的用法,详见 importing-other-assets
写的是可以的,但是仍不够细致,例如:
- 如何查找声明文件的
- 这段声明静态文件的代码到底是什么意思
declare module '*.svg' {
const content: any;
export default content;
}
我们,先来看第一个困惑点,如何查找声明文件的,这个没在文档里写,当经过尝试发现,在项目的 src/
只要有 xxx.d.ts 这种声明文件就会生效。
第二个问题,声明的静态文件的代码什么意思。
首先,非代码的静态文件相当于一个默认导出的模块,既然是默认模块,那我们就可以通过 import xxx 来引入,引入的变量 xxx 会发现是个字符串,所以声明模块里面暴露出的内容也必须是字符串的超集。:
declare module '*.svg' {
const content: any;
export default content;
}
介绍完上面,你再去看 react-scripts
的内容,就应该完全明白了。
如何生成 react-app-env.d.ts
文件
当我们删除掉 react-app-env.d.ts
文件,再去启动项目此声明文件会被重新创建,那它是如何生成的呢?
看了下面两个代码片段你就知道了:
如果声明文件不存在就自动创建。
最后
今天终于知道了年中考评的时间,从七月一号开始进行,正好借此机会谈谈我对公司年终和年中的看法,我们公司的年终考评是在十二月份开始的,时间没有问题,但是,我要说但是了,年终奖金却拖到三月份才发,我当然知道公司的意思,害怕发完奖金,过完年你跳槽,嗯,考虑的很棒,但我认为这个举措就没啥大用。
留下员工从来不是靠,拖发年终奖这种很 low 的方式,而是在员工福利和薪资待遇上下功夫,再说了,人家都想离职了,拖发年终奖你也只能留下几个月,这留下的几个月期间,对两方完全任何意义,还容易引发撕逼。
年终奖并不属于法定薪资的范围,给或不给都是公司的决定,但是如果公司决定给了,公司就要明白年终奖的意义,它是对员工过去一年幸苦劳动的奖励,看重点是过去一年,和明年是否继续在公司干,完全不相干的好吗,理论上你都应该在新阳历年到来之前发掉,最晚也的是一月份发放员工工资的时候。
接下来就是年中了,年中对员工有一个很重要的事情,就是涨工资(这个涨不涨,涨多少当然看个人能力了)。别的先不讲,用我们朴素的情感想想,七月份是不是就是涨工资开始的第一个月份,评审是不是应该发生在六月份,而且在六月末之前就应该出结果。
如果考核弄到七月份,那还能叫年中吗,等你考核完,在累计下月涨工资的话,距离年终半年都不到了好吗。
做人不应该投机取巧,做老板难道不是吗?
本文完。