Fork me on GitHub

TypeScript学习

开发环境搭建

1. 下载并安装Node.js

2. 使用npm 全局安装typescript

npm i -g typescript

3. 创建ts文件

4. 使用tsc对ts文件进行编译,转换成js文件

tsc xxx.ts

 

基本类型

1. 类型声明

  • 通过类型声明可以指定TS中变量(参数、形参)的类型;指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错
  • 简而言之,类型声明给变量设置了类型,使得该变量只能存储某种类型的值
  • 语法:
    1 let 变量: 类型;
    2 
    3 let 变量: 类型 = 值;
    4 
    5 function fn(参数: 类型, 参数: 类型): 类型{
    6     ...
    7 }

2. 自动类型判断

  • TS拥有自动类型判断机制
  • 对变量的声明和赋值时同时进行的,TS编译器会自动判断变量的类型
  • 直接赋值可以省略变量声明

3. 类型

类型 例子 描述
number 1,-1,1.1 任意数字
string "hello", "world" 任意字符串
boolean true,false 布尔值
object {name: "zhangsan"} 任意js对象
array [1,5,7] 任意js数组
字面量 其本身 限制变量的值就是该字面量的值
any * 任意类型(和js没区别,不建议使用)
unknown * 类型安全的any
void 空值(undefined) 没有值(或者undefined)
never 没有值 不能是任意值
tuple [2,5] 元素,ts新增类型,固定数组长度
enum enum{A,B}

枚举,ts中新增类型

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 字面量
    • 1 let color: 'red' | 'blue' | 'black'
      2 let num: 1 | 4 | 9
      // 可以使用字面量指定变量类型,也可以确定变量的取值范围,color只能取red blue black其中一个
  • any
    • 如果不指定类型,ts解析器自动判断类型为any,所以不建议直接写成 let d;
    • 注意:如果将any类型的b赋值给其他类型的a,那么a的类型也会变成any(这也是和unknown的区别之一)
    • 使用方式和js没区别
    • 1 let d: any =5;
      2 d = 'hello'
      3 d = true
  • unknown
    • 注意:如果将any类型的b赋值给其他类型的a,那么会报错。
    • 可以使用类型断言来处理报错
  • void
  • never
    • 表示不会返回结果,但是可以抛出错误
    • 1 function error(message: string):never {
      2   throw new Error(message)      
      3 }
  • tuple
    • 1 // 固定长度的数组,并且数组中的类型可以不一样
      2 let x:[string, number]
      3 x=['hello', 10]
  • enum
    • 复制代码
       1 enum Color {
       2   Red,
       3   Green,
       4   Blue,
       5 }
       6 let c: Color = Color.Green;
       7 
       8 enum Color {
       9   Red = 1,
      10   Green,
      11   Blue,
      12 }
      13 let c: Color = Color.Green;
      14 
      15 enum Color {
      16   Red = 1,
      17   Green = 2,
      18   Blue = 4,
      19 }
      20 let c: Color = Color.Green;
      21 // 另一个例子
      22 enum Gender{
      23   Male = 0,
      24   Female = 1
      25 }
      26 let i:{name: string, gender:Gender}
      27 i = {
      28   name:'冲',
      29   gender:Gender.Male // 如果gender:"Male",占内存,可以使用枚举类型的方式改善
      30 }
      复制代码

4. 类型断言

有些情况下,变量的类型对于我们来说是很明确,但是TS编译器却并不清楚,此时,可以通过类型断言来告诉编译器变量的类型,断言有两种形式:

  • 第一种:
1 let someValue: unknown = "this is a string";
2 let strLength: number = (someValue as string).length;
  • 第二种:
1 let someValue: unknown = "this is a string";
2 let strLength: number = (<string>someValue).length;

5. 类型别名

1 type myType= 1|2|3|4|5|6
2 let  mytype1: myType
3 let  mytype2: myType

 

posted @ 2021-06-03 16:38  zerozhupan  阅读(50)  评论(0)    收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示
目 录 X
开发环境搭建
基本类型
1. 类型声明
2. 自动类型判断
3. 类型
4. 类型断言
5. 类型别名