TypeScript学习

---- TypeScript 由微软公司开发  支持JS的平台都可以使用TS  但是TS不能被直接解析

  相较于JS  TS是强类型语言

---- TypeScript 增加了什么

1/. 类型

2/.支持ES的新特性

3/.ES不具备的新特性

4/.丰富的配置选项

5/.强大的开发工具

---- TypeScript开发环境搭建

1/.下载node.js  (TS解析器由node写的)

2/.安装node.js

3/.使用 npm 全局安装 TypeScript

  npm i -g typescript

4/.创建一个ts文件

5/.使用tsc对文件进行编译

  进入命令行

  进入ts文件夹所在目录

  执行命令 tsc xxx.ts

---- TS编写变量要带类型

  例如:   let a:number = 10;  let b:boolean = true;

----TS的基本数据类型

  any: 任意类型 生命为any的变量可以赋予任意类型额的值

  number: 数字类型 

  string:  字符串类型  可用单引号 ' 或双引号 " 来表示字符串类型  反引号 `来定义多行文本和内嵌表达式

  boolean:  布尔值类型  true/false

  Array:  数组类型   string[]   number[]  / Array<string>  Array<number> 表示是什么样类型的数组

  Tuple:  元组  按照数据类型要求即可   let a : [string, number]      a = ['123',456]  √    a= [123,'456']   ×

  enum:  枚举  例如:enum Color { Red = 1, Blue=2, Green =3}  let x: Color = Color.Blue    x === Color.Blue   // true

  void:  没有任何类型  表示没有返回值

  unkonwn: 类型安全的any   一般设置为unknown  不设置为any

  never: 表示永不存在的值

  object: 对象类型

----类型断言

  告知解析器变量的实际类型

  x = <string>a     或者   x = a  as  string     将类型为字符串的a 赋值给 x

----TS可以使用 | 来连接多个类型

  例如: let a : "man" | "woman"     a为 man或者 woman时不会报错 但是别的依旧会报错

    再比如:  let b: string | number    b为 字符串类型 或数字类型 不会报错 否则报错

 ----编译选项

  tsc  xxx.ts -w   启动监视模式  代码发生变化就会自动编译    ctrl + c  取消    这样一个文件就需要开启一次 比较麻烦

  创建配置文件  tsconfig.json   然后执行 tsc  就会编译所有的ts文件了、

----编译配置文件   tsconfig.json

  --“include”  用来指定哪些文件需要被编译

  路径:    ** 表示任意目录     * 表示任意文件

  例如  "./src/**/*"   指src文件夹下所有文件夹所有文件

  --“exclude”  用来指定哪些文件不被编译

  默认值 ["node_modules"],["bowewr_components"],["jspm_packages"]

  --"extends"  定义被继承的配置文件

    类似于引入其他文件

  --"files"   直接指定编译文件的列表

    例如  "files":["lesson1.ts","lesson2.ts","lesson3.ts"]

  --"compilerOptions"    编译器选项

    "target" : "ES5"  用来指定ts编译为的ES的版本

      可选项  es5  es6  es2015 es2016 es2017 es2018 es2019 es2020

    "module": "es2015 "              指定要使用的模块化规范

      可选项  none commonjs amd system umd es6 es2015 es2020 esnext

    "lib": []              用来指定项目中要使用的库   一般情况下不动

    "outDir" : "./dist"       用来指定编译后的输出路径

    "outFile" : ""    将代码合并成一个文件并指定输出路径

    "allowJs":  true   是否编译JS文件  默认是 false

    "checkJs": true           是否检查JS语法  默认是 false

    "removeComments" : true    是否移除注释

    "noEmit" : true  不生成编译后的文件

    "noEmitOnError" : true  当有错误时不生成编译文件

    "alwaysStrict" : false  编译后的文件是否使用严格模式 默认false

    "noImoliciAny" : true  不允许隐式的any类型

    "noImoliciThis" : true  不允许不明类型的this

    "stricNullChecks" : flase  严格的检查空值      有空值时会报错 例如获取不到元素之类的

----抽象类

 

----接口

----修饰符

  public    公有(默认值)  任何人都可以修改  子类也可以使用

  private   私有  只能在类的内部修改  不能用实例修改

  protected    受保护的属性  只能在当前类和当前类的子类中使用  这个也只能在类中修改

  

posted on 2021-04-20 20:56  贲风  阅读(76)  评论(0编辑  收藏  举报