
获得徽章 26
github.com
React 6.7.0(现在版本已经 v6.8.0) 新增了 unstable_useBlocker/unstable_usePrompt 和 V5 的 prompt 组件功能一样,这下 V5 升级 V6 没啥技术鸿沟了。
不过升级具体的优势并不是很明显。github.com
展开评论1- 提交之后发现 author 和 email 没有设置,可以通过 git config 修改之后,通过下面命令更新:
git commit --amend --no-edit --reset-author11 - TypeScript 4.9 的 satisfies 操作符表示,表达式 a 的类型满足类型 B 的一种情况。
有代码如下:
```ts
type Colors = "red" | "green" | "blue";
type RGB = [red: number, green: number, blue: number];
const palette: Record<Colors, string | RGB> = {
red: [255, 0, 0],
green: "#00ff00",
blue: [0, 0, 255]
};
```
表达式 palette.red 的类型为 string 或者数组,通过表达式我们确定 palette.red 就是数组,因为类型不匹配我们不能像这样 palette.red.at(0) 直接操作 palette.red 表达式。
像这样表达式 a 只满足类型 B 其中一种情况,可以使用 satisfies 操作符来做类型收窄。
```
const palette = {
red: [255, 0, 0],
green: "#00ff00",
blue: [0, 0, 255]
} satisfies Record<Colors, string | RGB>;
```
此时变量 palette 的类型就变得更加具体和表达式的值完全匹配:
```
const palette: {
red: [number, number, number];
green: string;
blue: [number, number, number];
}
```
这时就可以放心读取操作 palette 的属性了,例如:palette.red.at(0)
satisfies 适用情况:已知表达式 a 的类型是类型 B 的一个子集。展开评论1 - 修改 commit 的内容但保留 commit message
遇到的问题:
代码提交之后发现,开发过程中用于调试的 console.log 提交忘了删除。
以前的解决方案:
1. git log --oneline --graph 查看前一个 commit hash
2. git reset hash
3. 删除 console.log
4. git add xxx
5. git commit -m "xxxx"
现在的解决方案:
1. 删除 console.log
2. git add xxx
3. git commit --amend --no-edit
节省了两步 GOOD。展开16