-
ts jsx配置
三个值:preserve | reacr-native | react
preserve 输出文件扩展名.jsx
查看全部 -
ts moduleresolution 配置项有两个值node和classic,两个值的区别主要是查找路径不同 配置是node时,默认是去node_modules文件下查找引用文件 配置是classic时,现在外层查找引用文件,找不到时去node_modules目录下查找(主要是兼容老项目)。两个配置如果都找不到会去上层目录查找,直到根目录
查看全部 -
#### 动画1秒60帧
人眼中,如果1秒内有60帧,那么动画看起来流畅,否则就卡顿。这样算起来,一帧就是12毫秒。
#### Stack - 16版本之前的渲染模式
主要特点,等等整个虚拟树完成了比较后,再统一渲染,如果渲染节点巨大,虚拟树比较的工作可能会超过12毫秒,此时会出现卡顿现象。
#### Fiber - 16版本的渲染模式
主要特点,将整个虚拟数的比对拆分成很多个小任务,每个小任务的完成时间控制在一帧12毫秒内,每个小任务完成后都会完成一次渲染(小任务对应的局部渲染)。
因为每次渲染都控制在一帧以内,不用等所有任务或整个树比对完后才渲染,所有看起来流畅,不卡顿。
查看全部 -
### 两种使用范型接口的方式
#### 函数调用时声明T类型
```ts
// interface GenAdder {<T>(arg1:T,arg2:T):T};
// let addFunc : GenAdder;
// addFunc = add;
// // 函数调用时定义好T类型
// addFunc<number>(1,2)
```
#### 在ts类型声明时设置好T类型
我们也可以将上面的T从花括号后,提取出来,放在GenAdder后;
**这种定义方式,就要求在使用接口时,必须在接口后定义好`<类型>`**,
可以理解为,不同的范型接口定义方式,决定了使用范型时的方式与规范。
也可以理解为,定义接口时,若接口后紧挨着一个`<T>`,则使用此接口时,必须是 `接口名<T>`;
若接口后是干干净净的,没有任何其他东西,则使用此接口时,应该为单纯的 `接口名`
```ts
// 将T提出来,紧挨接口名之后
// interface GenAdder<T> {(arg1:T,arg2:T):T};
//使用接口时,需定义好T类型
// let addFunc : GenAdder<number>;
// addFunc = add;
// addFunc(1,2)
```
#### 范型接口定义方式不同,使用方式将不同
参考上面《在ts类型声明时设置好T类型》
查看全部 -
轻微轻微轻微轻微轻微
查看全部 -
module.exports 这是commonJs导出规范;用require()引入模块
export default 是 import 规范;
tsconfig中 esModuleInterop 的作用是兼容模块的导入导出
查看全部 -
初始化一个typescriptp的配置文件: tsc --init;
两个空类型
let u: undefined = undefined
let n: null = null
//区别
Number(null) //0
Number(undefined) // NaN
console.log(undefined == null) //true
3.类型检测
let height: number
height = 100 //success
height = '100' //fail
height = null //success
height = undefined //success
这是因为其他类型都包含null和undefined类型
查看全部
举报