TypeScript 一 类型

84 阅读2分钟

🎉定义

一个JavaScript得超集。一JavaScript为基础得语言。但是不能被JS解析器直接执行,需要进行编译之后才能执行。

🎉增加

  • 类型
  • 支持ES的新特新,增加了ES不具有的新特性
  • 丰富配置的选项
  • 强大的开发工具

🎉基本类型

🎇类型声明

  • 类型声明是TS非常重要的一个特点;
  • 通过类型声明可以指定TS中变量(参数、形参)的类型;
  • 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错;
  • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值;
let 变量: 类型;
let 变量: 类型 = 值;
function fn(参数: 类型, 参数: 类型): 类型{
}

🎇自动类型判断

  • TS拥有自动的类型判断机制
  • 当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型
  • 所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明

🎉类型

image.png

  • 类型断言

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

     -   第一种
    
 let someValue: unknown = "this is a string";
 let strLength: number = (someValue as string).length;
    -   第二种
let someValue: unknown = "this is a string";
let strLength: number = (<string>someValue).length;
  • number
 let decimal: number = 6;
 let hex: number = 0xf00d;
 let binary: number = 0b1010;
 let octal: number = 0o744;
 let big: bigint = 100n;
  • boolean

     let isDone: boolean = false;
    
  • string

     let color: string = "blue";
     color = 'red';
    
     let fullName: string = `Bob Bobbington`;
     let age: number = 37;
     let sentence: string = `Hello, my name is ${fullName}.
    
    I'll be ${age + 1} years old next month.`;
    
  • 字面量

    也可以使用字面量去指定变量的类型,通过字面量可以确定变量的取值范围

     let color: 'red' | 'blue' | 'black';
     let num: 1 | 2 | 3 | 4 | 5;
    
  • any

     let d: any = 4;
     d = 'hello';
     d = true;
    
  • unknown

      let notSure: unknown = 4;
      notSure = 'hello';
    
  • void

     let unusable: void = undefined;
    
  • never

     function error(message: string): never {
       throw new Error(message);
     }
    
  • object(没啥用)

      let obj1: object;//没啥用
      let obj2: object = {name: string, age?: number};//?属性可选
      let obj3: object = {name: string, [propName: string]: any};//[propName: string]: any后边任意属性
  • array

       let list: number[] = [1, 2, 3];
       let list: Array<number> = [1, 2, 3];
    
  • tuple

 let x: [string, number];
 x = ["hello", 10]; 
  • enum
        enum Color {
          Red,
          Green,
          Blue,
        }
        let c: Color = Color.Green;

        enum Color {
          Red = 1,
          Green,
          Blue,
        }
        let c: Color = Color.Green;

        enum Color {
          Red = 1,
          Green = 2,
          Blue = 4,
        }
        let c: Color = Color.Green;