项目笔记(二)| 青训营笔记

71 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天

动态类型语言和静态类型语言

动态:JavaScript、ruby、python运行的时候自动检查转化,运行的时候才会发现问题

静态:c++、c、java

学什么东西要想对自己技术有什么提高

使用typescrip的优点:

  1. 程序更容易理解,动态类型需要运行时调试知道来龙去脉
  2. 效率更高(文档提示,代码补全
  3. 不存在的方法直接提示
  4. 完全兼容JavaScript

缺点:

  1. 增加学习成本
  2. 短期内增加开发成本(但是对长期大型项目很重要

原始数据类型

image.png

undefined 和 null的区别

都是所有类型的子类型

any 就是任意类型都可以

如果明确类型那还是写好比较好,不然就丢失类型检查的作用了,这样就和JavaScript一样了

数组

数组将同一类型的东西聚合在一起

元组

数组写法:let arrayOfNumbers: number[] = [1,2,3]

元组写法: let user :[string, number] = ['lhj', 20] 限定数据类型的数组

interface 接口

  • 对对象形状(shape)进行描述
  • Duck Typing (鸭子类型)

例子:

interface Person{
    name: string;
    age: int;
}

如果是age?:意思就是可选可不选这个

readonly 只读属性

参数

function add(x:number, y:number):number{
return ....
}

函数表达式写法:

const add = (...) =>{

}

这里输入输出有类型,包括函数本身也是有类型的

也可以把这个类型赋给一个string,记住凡是在:后面的都是在声明类型

写法:

let add2: (x: number, y: number, z?: number) => number = add

这里的箭头不是箭头函数,就是类型部分

也可以用interface写

类型推论联合类型和类型断言

联合类型:

let numberOrString: number | string

如果直接访问方法的话是访问的共有属性

类型断言:

告诉编译器自己比它更了解这个类型,你小子没法判断代码,但是我很清楚

类型断言不是类型转换,写成里面不存在的会报错

枚举

常量

一周,上下左右方位...

泛型

泛型是怎样出现的?

定义函数、接口或类的时候,先不指定具体类型,在使用的时候再指定类型

例子:

function echo<T>(arg:T):T{
return arg
}
​
const result = echo('str')

这样就会根据传入的自动对应

image.png

image.png

只要叫起来像鸭子,就都可以拿来用 extends的妙用

只要包括extends里面的就不会报错

泛型在类上面的使用

泛型蛮重要!

类型别名

type =

字面量

什么时候使用type什么时候使用interface

安装声明文件:上typescript官网查找

type文件夹里面 模块

ts配置

配置选项

vue 3

使用volar插件,就要defineComponent

Eslint

规范的代码格式提高工作效率

要把规矩列出来,写在文件里

开源的JavaScript

.eslintrc:

  • extends

    比较出名的组织弄的一系列的规则,可以直接使用

  • rules

    针对特定规则进行修改:0 1 2

computed属性接受一个函数

特别注意模板中引用的是不是响应式对象

vue3 最重要的内容

loading 加载中

  • axios

    get方法,then得到返回的结果进行处理,catch可以获取错误

  • suspense

  • async await

  • Project/Inject