提示:TypeScript中的基本类型

文章目录

  • 前言
  • 基本类型
    • 1.类型声明
    • 2.自动类型判断
    • 3.类型断言

前言

TypeScript (计算机编程语言)简称:TS,是 JavaScript 的超集。简单来说就是:JS 有的 TS 都有。JS写的代码在TS的环境下都能跑;对了,TS是微软设计并发布的。


基本类型

1.类型声明

  • 类型声明是TS非常重要的一个特点;

  • 通过类型声明可以指定TS中变量(参数、形参)的类型;

  • 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错;

  • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值;

let 变量: 类型;let 变量: 类型 =;function fn(参数: 类型, 参数: 类型): 类型{...}

2.自动类型判断

  • TS拥有自动的类型判断机制
  • 当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型
  • 所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明
类型例子描述
number1, -33, 2.5任意数字
string‘hi’, “hi”, hi任意字符串
booleantrue、false布尔值true或false
字面量其本身限制变量的值就是该字面量的值
any*任意类型
unknown*类型安全的any
void空值(undefined)没有值(或undefined)
never没有值不能是任何值
object{name:‘孙悟空’}任意的JS对象
array[1,2,3]任意JS数组
tuple[4,5]元组,TS新增类型,固定长度数组
enumenum{A, B}枚举,TS中新增类型
  • 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 obj: object = {};
  • 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;

3.类型断言

  • 有些情况下,变量的类型对于我们来说是很明确,但是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;