0907 今日总结
今日工作
问题,原因,解决方式,优化,巧妙实现,新知识
number 和 Number 的区别;
还是在做技术性需求,注意力转移到 组件的 ts 类型优化;
遇到有人的类型写成这种:
ts
interface AA {
a: number;
b: Number;
}
实际上,ts 中只有 number
这种类型,Number
其实算是包装 number
对象类型;上述写法会让人觉得纳闷,实际上是有区别的;参考如下:
ts
let numValue = 100; //primitive number
let numObject = new Number(1500); //Number object
numValue = numObject; //Compile Error
numObject = numValue; //ok
***** Error *****
Type 'Number' is not assignable to type 'number'.
'number' is a primitive, but 'Number' is a wrapper object. Prefer using 'number' when possible.ts(2322)
一句话总结
使用 number
和 Number
作为 类型约束时,若使用 new Number(n)
的方式定义数字,无法匹配 number
,因为它是一个对象;
参考资料:
- TypeScript Number Data Type - TekTutorialsHub
- javascript - What is the difference between "number" and "Number" in TypeScript? - Stack Overflow
好文推荐
有感好文
React Hooks 学习
做 react 开发,经常会定义一些 hook,可以通过如下 hook 开源项目学习如何封装 hook;
网页重新部署通知用户
几篇文章分别有不同的方案:使用 setInterval
轮训;使用 WebSocket
; 方案实现;
关于 vs code 的 dev container
利用 docker 搭建 dev container,这样一次搭建,不同设备都能保持环境一致性;
- 提升前端开发体验:利用 Dev Containers 实现高效开发 - 掘金
- 手把手提高开发体验:dev-containe - 掘金
- FrankFang/oh-my-docker: Use docker container as your dev env.
- FrankFang/oh-my-env-1
项目/博客推荐
值得学习 作者/项目/工具等
博客
- 炫酷的博客-星源 一个酷的个人博客,作者 2009 年出生,现在才 14 岁,厉害了!!!!
项目
- windows-12 上面作者的项目,很好看;
- react-component 一个开源的库,antd 的 ui 组件基础库,参考可以学习学习组件封装;
工具
- Understanding Volta | Volta 这个工具可以限制项目使用的 node 版本,且能够做到自动切换版本,如下例子:
json
"volta": {
"node": "12.20.2",
"yarn": "1.19.2"
}