review-types 常见类型1234567891011interface TEST { a?: string // 字符 b?: number // 数字 c?: boolean // 布尔 d?: any // 任意 e?: (string | number)[] // 数组 f?: () => void // 函数签名 g?: {} / 2022-03-11
温故而知新 数字的最大长度 Javascript Number 类型为IEEE 754 64位双精度浮点格式(64位的二进度数) 整数范围为: [-2^53 - 1, 2^53 -1] 区分 +0 和 -0 的方式,正是检测 1/x 是 Infinity 还是 -Infinity 大数相加 123456789101112131415161718192021222324252627282 2022-03-07 温故而知新
ts-实现常见的类型 基础类型的应用实现 Exclude从当前类型中排查掉提供的类型(提供的是类型而不是属性名,和 omit 区分开)这个提供的类型不一定约束为当前目前类型的子类型, 当确定的类型参数为联合类型时,就会被分配类型TypeScript参考,分配条件类型 123type MyExclude<T, U> = T extends U ? never : Ttype newType = MyExclu 2021-09-08 typescript
ts-types 索引类型 index types索引类型查询: keyof T keyof T 的结果为T上已知的公共属性名的联合 下面 keyof T 的结果为 ‘name’ | ‘age’ 索引访问操作符: T[K] 先决条件 K extends keyof T 1234567891011121314function pluck<T, K extends keyof T>(o: T, names: 2021-08-09 typescript
ts-alias 使用create-react-app 创建带有ts的模板yarn create react-app my-app –template typescript 覆盖ts配置并配置别名cra创建的模板每次启动时会自动覆盖一部分配置,所以需要自己通过extends将需要的部分重写 123456789101112// tsconfig.json "extends": "./t 2021-07-27 typescript
workflows 工具的用法随着版本会发生变化安装最新版本时,实际用法请参考官方文档 prettier-格式化代码1.安装 prettier 1yarn add --dev --exact prettier 2.vscode 安装插件 Prettier - Code formatter 3.打开 vscode 选择默认格式化工具,同时配置 format on save 4.通过 lint-staged 添加 pr 2021-07-27 tools
react-fiber Stack Reconciler面临的问题开始渲染时,Stack Reconciler 是一个同步的递归过程。该架构下的diff算法是一个树的深度优先遍历,树复杂的情况下会占用过多的主线程时间 fiber架构增量渲染,将渲染任务分片,使任务可中断、可回复与优先级16之前,react更新流程:Reconciler -> render 16之后Scheduler -> Reconciler 2021-07-13 React
react-setState setState 调用之后触发的生命周期setState -> shouldComponentUpdate -> componentWillUpdate -> render -> componentDidUpdate 异步更新的动机批量更新 1234567891011121314151617181920212223242526272829303132333435363738 2021-07-12 React
react-reconciliation 虚拟dom概念:使用js对象对真实dom的一种描述原理: js操作->真实dom渲染 这一层中间加了一层 js操作->虚拟dom diff->真实dom渲染优化: 差量更新:当 DOM 操作(渲染更新)比较频繁时,它会先将前后两次的虚拟 DOM 树进行对比,定位出具体需要更新的部分,生成一个“补丁集”,最后只把“补丁”打在需要更新的那部分真实 DOM 上,实现精 2021-07-12 React
react-hooks 类组件所谓类组件,就是基于 ES6 Class 这种写法,通过继承 React.Component 得来的 React 组件 123456789101112131415161718192021222324252627import React from 'react';class Sub extends React.Component { constructor( 2021-07-08 React