Skip to content

w569638598/TypeScriptStudy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

环境

安装

npm i -g typescript

配置文件的建立

1.直接新建文件tsconfig.js 2.tsc --init

默认情况下,TS会做出下面几种假设:

  1. 假设当前的执行环境是dom
  2. 如果代码中没有使用模块化语句(import export),便认为该代码是全局执行
  3. 编译目标是ES3

有两种方式更改以上假设:

  1. 使用tsc命令行的时候,加上选项参数
  2. 使用TS配置文件,更改编译选项

使用

tsc 根据ts配置文件来编译 编译某个文件 tsc //filename

使用了配置文件后,使用tsc进行编译时,不能跟上文件名,如果跟上文件名,会忽略配置文件

配置开发环境

需要有node环境的话,使用@types/node

安装npm i -g ts-node

编译并执行 //ts-node: enrty 入口文件名

@types/node @types是一个ts官方的类型库,其中包含了很多对js代码的类型描述,如果需要使用jq的类型检查,@types/jquery

使用第三方库简化开发流程

ts-node: 将ts代码在内存中完成编译,同时完成运行 ts-node /编译文件名

监测文件变化

"scripts": { //--watch 监控那个目录下的文件 //-e 监控哪种类型的文件 //ts-node编译并执行文件 "dev": "nodemon -e ts --watch src --exec ts-node src/index.ts" }

ts的使用

基本类型约束

TS是一个可选的静态类型系统

如何进行类型约束

仅需要在 变量、函数的参数、函数的返回值位置上加上:类型

ts在很多场景中可以完成类型推导

any: 表示任意类型,对该类型,ts不进行类型检查

小技巧,如何区分字符串类型还是数字类型,看怎么读,数字读法就是数字类型比如一百三十三

源代码和编译结果的差异

编译结果中没有类型约束的信息

严格的类型检查模式

通过添加strictNullChecks: true null和undefined只能赋值给自身。

基本类型

  • null 、 undefined
  • 数字
  • 字符串
  • boolean
  • object

其他类型

  • 联合类型:多种类型任选其一 比如 let str: string | number 配合类型保护进行判断 类型保护: 当对某个变量进行类型保护之后,在判断的语句块儿中便可以确定它的确切类型 typeof语句
  • void类型:通常用于约束函数的返回值,表示该函数没有任何返回
  • never类型:通常用于约束函数的返回值,表示该函数用于不可能结束
  • 字面量类型: 使用一个值进行约束 比如 let a: "a" 然后 a = 'b'会报错
  • 元祖类型(Tuple): 一个 固定长度的数组,并且数组中每一项的类型确定
  • any类型: any类型可以绕过类型检查,因此,any类型的数据可以赋值给任意类型

类型别名

对已知的一些类型定义名称 ···

type 类型名 = ...

···

函数的相关约束

函数重载: 在函数实现之前,对函数调用的多种情况进行声明 可选参数: 可以在某些参数名后加上问号,表示该参数可以不用传递.可选参数必须在参数的末尾

字面类型的问题

  • 在类型约束位置,会产生重复代码。可以使用类型别名解决该问题。
  • 逻辑含义和真是的值产生了混淆,会导致当修改真实值的时候,产生大量的修改。
  • 字面量类型不会进入到编译结果。

位枚举(枚举的位运算)

针对数字的枚举

位运算: 俩个数字换算成二进制后进行的运算

About

TypeScript的学习。环境,语法到应用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published