git的stash 原型链 基础TS

162 阅读3分钟

一、git stash

1. git stash

会把暂存区和工作区的改动保存放起来

2. it stash save

`git stash save`可以用于存储修改.并且将`git`的工作状态切回到`HEAD`也就是上一次合法提交上

如果给定具体的文件路径,`git stash`只会处理路径下的文件.其他的文件不会被存储,其存在一些参数:

   --keep-index 或者 -k 只会存储为加入 git 管理的文件
   --include-untracked 为追踪的文件也会被缓存,当前的工作空间会被恢复为完全清空的状态
   -a 或者 --all 命令可以当前目录下的所有修改,包括被 git 忽略的文件

3. git stash pop

从栈中读取最近添加的 stash

  • git stash pop +stash名字 可以指定取谁回到当前目录
  • 不指定的话取存储的数据就类似弹夹 先进后出

image.png

  • 这个 stash@{0} , stash@{0} 就是stash名字
  • 如果git stash 出现冲突那么则需要手动修改冲突或者创建新的分支来解决冲突

4. git stash list

查看栈中的stash存储的文件

5. git stash apply

`git stash apply``git stash pop` 相似都是可以将栈中存储的内容取出
 也可以通过 `git stash apply + stash名字` 恢复指定的到当前目录
 不同地点是`git stash apply` 不会删除栈中的内容
 可以将栈中的内容多次应用到工作目录中,适用于多分支情况

6. git stash show

查看堆栈中最新保存的stash和当前目录的差异

通过使用git stash show -p查看详细的不同

通过使用git stash show stash@{1}查看指定的stash和当前目录差异

7. git stash drop

`git stash drop` + `stash`名称表示从堆栈中移除某个指定的 stash

8. git stash clear

 删除所有存储的进度

二、原型链

51308fec790c83ddb3d4dfcf2a495bc9.png

当我们创建一个函数的时候那么这个函数就会伴生一个对象,也就是原型 `prototype` ,当我们访问这个对象的属性

或方法时如果这个对象没有这个属性或方法时那么就会去它的原型上面去找 `__proto__`,如果原型上面没有的话就会

去原型的原型上面去找,直到找到null,如果是属性的话那么就会返回undefinde,如果是方法的话就会报错

三、基础TS

TypeScript是JavaScript的一个超集,TS的话支持为数据添加type类型

image.png image.png

基础数据类型

String、Number、Boolean、null、undefined、symbol 可以用 type

冒号后面的内容叫:类型注解
    1. let str:string = '哈哈哈' 创建字符串类型
    2. let num:number = 123456 创建数字类型
    3. let bool:boolean = true
    4. let n:null = null 创建null类型
    5. let u:undefinde = undefinde 创建undefinde类型
    6. let sym:symbol = Symbol('me')
    7. let big:bigint = 300n
`bigint` 是一种基本数据类型(primitive data type)。

JavaScript 中可以用 Number 表示的最大整数为 2^53 - 1,可以写为 Number.MAX_SAFE_INTEGER。如果超过了这个界限,可以用 BigInt来表示,它可以表示任意大的整数。

复杂基础类型

Object、Array、元组、枚举、any、void、never、unknown

数组类型

1. let arr1 : number[] = [1,2,3,4,5]
2. let arr2 : Array<number> = [1,2,3,4,5] 

联合类型

1. let arr3: (number | string)[] = [1,'哈'2'是']
2. let arr4: number[] | string ='哈哈哈' 或者 [9,8,7,6]

元组类型

1. let arr5: [number,string] = [1,'嗯嗯']

元组类型的数组数量和位置要与规定的 一一对应

函数

type myType = {name:string,age:number}
可以用type声名参数给函数使用
function fn (myType) : number {
    return `我是${name}${age}岁`
   }

函数声名

: numbe 是函数返回值的类型
function fn (num1: number,num2: number) : number {
    return num1+num2
   }

函数表达式

let fn1 = (num:number,str:string) => string =(num,str)=> {
        return `${num}${str}`
   }

可选参数

`vodi` 代表没有返回值 str就是可选参数有或者没有都可以
let fn2 = (num:number,str?:string) :vodi {
      console.log(num,str)
  }

剩余参数

function push(array: any[], ...items: any[]) {
    items.forEach(function(item) {
        array.push(item);
    });
}
let a = [];
push(a, 1, 2, 3);