Skip to content

1009 今日总结

关键词: Chrome下载PDF、React类型@types、组建系统、项目重构、英语听力练习、中年失业、双拼打字

今日工作

问题,原因,解决方式,优化,巧妙实现,新知识

问题1 Chrome 默认打开 pdf 文件而非下载 问题

需求: 请求接口,后端返回一个 url,通过 url 下载 pdf;

问题: Chrome 的设置问题,对于 pdf 文件,默认处理方式是打开文件;

处理方式:

  • 需求协商:默认新 tab 页打开预览,如需下载,用户自己可以下载;
  • 使用 url 下载:需要修改 后端返回的内容为 ,而非 一个 url;同时前端需要接受流的方式处理;

拓展:

一般而言,对于下载文件的情况,是 2 种方式:

  • window.open
  • <a href="url" />

参考资料:

问题2 不同版本 React types 类型和依赖的 类型不匹配问题

下班前,查看项目代码的时候,发现之前修改的代码类型报错了;原因是:

  • 组件代码中 React 使用版本是 ^16.x.x,但是实际安装的 @types/react 版本是最新的 ^18.0.2
  • 组件引入了 antd 组件,组件的 key 属性中,类型定义是用的 @types/react: ^16.x.x
  • 即:对于 React.Key 这个类型,在 低版本的 React 类型和 高版本的 React 类型不对应:
ts
// React -> v16.x.x
React.Key = string | number | null | undefined;

// React -> v18.0.2
React.Key = string | number | null | undefined | bigint;

搜索资料,AntD 也遇到了这个问题,可以看这个更新 修复 @types/react@18.2.22 React.Key 定义更新引发的问题。#44938,它 的处理方式是替换 React.Key, 使用其他类型:InternalNamePath | string | string[]

搜索资料过程中,发现一个类型自动安装的工具:jeffijoe/typesync 可以自动安装所有 @types/xxx

补充

React 不同版本的类型差异,不仅仅会有这个 React.Key 不一致问题,其他的,之前整理组件时,遇到 react-router-dom 不同版本类型中对于 React.Element 类型也存在一定差异;

相关资料:

好文推荐

有感好文,专题好文

TOP3

英文

其他好文

失业专题

今年的寒气,上半年我就已经亲身感受到了,现在社区文章、B 站、小红书、抖音 越来越多类似的推送了;不禁感慨,人到中年,没有工作,背负着房贷、车贷、娃和家庭;步履维艰!

人到中年,到底该何去何从?看到社区大部分失业开发人员的几个去向:

  • 外卖、滴滴、货拉拉;
  • 摆摊、开店(餐饮居多);
  • 创业(外包软件);
  • 远程开发:Web3 领域等新兴岗位;

感想

看了这么多中年失业的案例,不禁愈发焦虑。

转眼间,我也马上 30 岁了,站在这个职业转折点上,与其担心,不如 提前规划布局,居安思危,想好退路。

文章

项目/博客推荐

值得学习 作者/项目/工具等

博客

项目

工具

工作几年了,使用的还是拼音打字,准确率和效率其实一般般;

想学五笔打字,但是背词根之类的很头大;

折中方案:双拼,比拼音打字快,比五笔打字记忆少;可以快速学习起来;

Released under the MIT License.