原型链、git stash命令、TypeScript

60 阅读2分钟

一、原型链

  • 构造函数通过new关键字进行实例化
  • 实例化出来的对象可以通过隐式原型__proto__去访问构造函数的显式原型(prototype)
  • 构造函数的显示原型(prototype)可以通过构造器(constructor)去访问构造函数本身
  • 实例化的对象可以通过构造器(constructor)去访问构造函数本身
  • 关系图: Snipaste_2023-02-15_16-39-12.jpg

二、git stash命令

当我们正在开发一个项目的功能时,前面的功能出现重大bug,需要去修改,但当前的开发进度又不能遗弃,这时就可以使用git stash指令,将正在开发的代码保存在栈内,等将bug修复完毕,上传文件后,就可以使用git stash pop 将上传到栈内的代码拿回来继续开发

具体命令
  • git stash save "save message"  : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
  • git stash list :查看stash了哪些存储
  • git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
  • git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p
  • git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1} 
  • git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
  • git stash drop stash@{num} :丢弃stash@{num}存储,从列表中删除这个存储

三、TypeScript

1.数据类型

  1. 原始数据类型:string、number、boolean、null、undefined、symbol
    // 简单声明
    let username: string = "张三";
    let age: number = 21;
    let isLoading: boolean = true
    let a: null = null;
    let b: undefined = undefined;
    let c: symbol = Symbol();
    console.log(username);
    
    
  2. 数组类型
     // 联合式声明数组,声明数组每一个项的类型,必须为指定类型不能错误
     let arr: (number | string)[] = [123, '你好']
    
  3. 对象类型
    // 类型别名
    type myobj = { name: string, age: number, arr: (number | string)[] }
    // 使用后
    let obj1: myobj = { name: '张三', age: 12, arr: [123] }
    
  4. 元组:是另一种形式的数组,是明确数量与类型的数组,既不能多也不能少,每一个类型都必须对应
     // 元组是另一种形式的数组,是明确数量与类型的数组,既不能多也不能少,每一个类型都必须对应
     let arr1:[string,number] =['nihao1',123]
    
  5. 函数类型
     // 普通函数
     function fn(num1: number, num2: number): number {
         return num1 + num2
     }
    // console.log(fn(1, 2));
    

声明类型的方式

  1. 联合式声明
  // 联合声明
  let str: number | string = '李四'
  1. 接口类型
 // 接口类型
interface myobj = { name: string, age: number, arr: (number | string)[] }
  1. 函数类型
  // 箭头函数
const fn1 = (num1: number, num2: number): number => {
    return num1 * num2
}
// console.log(fn1(2, 3));
  1. 类型别名
 // 类型别名
type myobj = { name: string, age: number, arr: (number | string)[] }