TypeScript怎么使用!、git操作、构造函数原型链实例对象三角关系、 git stash 的理解?应用场景?

119 阅读6分钟

TypeScript 简介

  1. TypeScript 是 JavaScript 的超集。
  2. TypeScript 建立在 JavaScript 之上。首先,我们编写 TypeScript 代码。然后,我们使用 TypeScript 编译器将 TypeScript 代码编译为纯 JavaScript 代码。
  3. 拥有纯 JavaScript 代码后,我们可以将其部署到 JavaScript 运行的任何环境中。
  4. TypeScript 文件的扩展是 .ts ,而不是 JavaScript 文件的 .js 扩展名。image.png
  5. TypeScript 使用 JavaScript 语法,并添加了额外的语法来支持类型。
  6. 如果我们的 JavaScript 程序没有任何语法错误,那么,它也是一个 TypeScript 程序。这意味着所有的 JavaScript 程序都是 TypeScript 程序。
  7. 如果我们要将现有的 JavaScript 代码库迁移到 TypeScript,这将非常有用。
  8. 下图展示了 TypeScript 和 JavaScript 之间的关系:image.png

为什么选择 TypeScript

  1. TypeScript 的主要目标是:将可选类型引入 JavaScript。在当前 JavaScript 的基础上实现未来 JavaScript 的计划功能,即 ECMAScript Next 或 ES Next。
  2. TypeScript 提高我们的工作效率,同时帮助避免bug。
  3. 类型通过帮助我们避免许多错误来提高生产力。通过使用类型,我们可以在编译时捕获错误,而不是让它们在运行时发生。

安装TypeScript

  • 安装全局
npm install -g typescript  安装全局TypeScript
tsc -v 查看版本
tsc 名.ts  转换成js版本
node 名.js 执行node命令
  • ts-node 可以编译或运行ts文件
npm install -D typescript 或 npm install -D ts-node 当前项目安装
npm install -g typescript 或 npm install -g ts-node 全局安装Ts类型
ts-node 名.ts  启动ts文件
  • 运行时出现# TS2584 (TS) Cannot find name 'console'. error报错,如何解决?
根据配置,可能需要这些
npm install -g @types/node   全局安装运行依赖包    
npm i -g tslib @types/node
npm i -g ts-node@8.5.4   降低版本

image.png

Ts基础类型

  1. 原始类型:number、string、boolean、 undefined、null、 symbol,冒号后面的内容叫:类型注解 image.png
  2. 数组类型image.png
  3. 类型别名(相同的类型反复使用)image.png
  4. 函数类型(给函数添加类型,实际是给参数和返回值添加类型)image.png
  5. 对象类型 image.png
  6. 元组
  • Typescript 中来看,元组是一个长度固定的、子元素类型不需相同的数组 可以简单粗暴的理解为,元组是一种特殊的数组。
  • 但是在定义元组时,可以规定每一个子元素的类型,子元素的类型不必相同,但同时,也是指定了元组的长度 image.png

Visual Studio Code 中git操作

  1. 克隆 image.png
  2. 添加到暂存区Snipaste_2023-02-15_16-38-44.png
  3. 添加到本地仓库Snipaste_2023-02-15_16-40-27.png
  4. 添加到git库Snipaste_2023-02-15_16-41-37.png
  5. git stash处理冲突 image.png
  • 把<<<<<,====,>>>> 区域删除 重新上传git image.png

构造函数原型链实例对象三角关系

image.png

git stash是什么?

image.png stash,译为存放,在 git 中,可以理解为保存当前工作进度,会把暂存区和工作区的改动进行保存,这些修改会保存在一个栈上

后续你可以在任何时候任何分支重新将某次的修改推出来,重新应用这些更改的代码 默认情况下,git stash会缓存下列状态的文件:

  • 添加到暂存区的修改(staged changes)
  • Git 跟踪的但并未添加到暂存区的修改(unstaged changes)

但以下状态的文件不会缓存:

  • 在工作目录中新的文件(untracked files)
  • 被忽略的文件(ignored files)

如果想要上述的文件都被缓存,可以使用-u或者--include-untracked可以工作目录新的文件,使用-a或者--all命令可以当前目录下的所有修改

如何使用?

关于git stash常见的命令如下:

  • git stash
  • git stash save
  • git stash list
  • git stash pop
  • git stash apply
  • git stash show
  • git stash drop
  • git stash clear

#git stash

保存当前工作进度,会把暂存区和工作区的改动保存起来

#git stash save

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

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

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

#git stash list

显示保存进度的列表。也就意味着,git stash命令可以多次执行,当多次使用git stash命令后,栈里会充满未提交的代码,如下:

其中,stash@{0}stash@{1}就是当前stash的名称

#git stash pop

git stash pop 从栈中读取最近一次保存的内容,也就是栈顶的stash会恢复到工作区

也可以通过 git stash pop + stash名字执行恢复哪个stash恢复到当前目录

如果从stash中恢复的内容和当前目录中的内容发生了冲突,则需要手动修复冲突或者创建新的分支来解决冲突

#git stash apply

将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除

也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况

同样,可以通过git stash apply + stash名字执行恢复哪个stash恢复到当前目录

#git stash show

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

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

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

#git stash drop

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

#git stash clear

删除所有存储的进度

应用场景

当你在项目的一部分上已经工作一段时间后,所有东西都进入了混乱的状态, 而这时你想要切换到另一个分支或者拉下远端的代码去做一点别的事情

但是你创建一次未完成的代码的commit提交,这时候就可以使用git stash

例如以下场景:

当你的开发进行到一半,但是代码还不想进行提交 ,然后需要同步去关联远端代码时.如果你本地的代码和远端代码没有冲突时,可以直接通过git pull解决

但是如果可能发生冲突怎么办.直接git pull会拒绝覆盖当前的修改,这时候就可以依次使用下述的命令:

  • git stash
  • git pull
  • git stash pop

或者当你开发到一半,现在要修改别的分支问题的时候,你也可以使用git stash缓存当前区域的代码

  • git stash:保存开发到一半的代码
  • git commit -m '修改问题'
  • git stash pop:将代码追加到最新的提交之后