TypeScript基本类型

TypeScript 的基本类型

  • Boolean

布尔值,表示true或false。

let isDone: boolean = false;
isDone = true; //正确
isDone = 1; //报错
  • Number

数字,包括整数和浮点数。

//正确使用
let decimal: number = 6;
let hex: number = 0xf00d;
let binary: number = 0b1010;
let octal: number = 0o744;

//错误使用,以下例子会报错
let decimal: number = '6';
let isBol: number = true
  • String

表示字符串

let name: string = "Tom";
name = "ikun";//正确
name = 2.5; //错误
  • Array

数组,定义数组有主要有两种方式:
如我们要定义数字类型的数组,在变量后面加上 number[] 或者 Array

//正确
let list: number[] = [1, 2, 3]; 

//错误,当数组定义为number类型后,数组里面只能存放number的值
let list: number[] = [1, 2, "Tom"]; 


//正确
let list: string[] = ["Tom", "Jack"]; 

//错误,定义string就只能存放string类型的值,不然就回报错
let list: string[] = ["Tom", "Jack", 1]; 

let list: Array<number> = [1, 2, 3]; //正确
let list: Array<string> = ["Tom", "Jack"]; //正确
  • Tuple

元组,表示已知元素数量和类型的数组,可以定义数组里面存放不同类型的值。

//正确
let tuple: [string, number] = ['Tom', 25];

//错误,数组里面的值要和定义的元组里面的类型和数量一致,不能多不能少
let tuple: [string, number] = ['Tom', 25, "Jack"];

//错误,连顺序都要对应
let tuple: [string, number] = [25, 'Tom'];
  • Enum

Enum是一种用于定义命名的常量集合的特殊数据类型。它可以被用于存储一组常量或为某些数据类型提供一个固定集合的选项。如果有学习过java中的枚举,应该就比较熟悉。

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


//例子,Up为1 后面的值会跟着累加
enum Direction {
    Up = 1,
    Down,
    Left,
    Right
}
console.log(Direction.Down) //2
console.log(Direction.Left) //3
console.log(Direction.Right) //4

//例子,Up为3 后面的值会跟着上一值累加
enum Direction {
    Up = 3,
    Down,
    Left,
    Right
}
console.log(Direction.Down) //4
console.log(Direction.Left) //5
console.log(Direction.Right) //6

//例子,当然,除了数字累加,还可以定义对应的值
enum Gender {
    Male = "1",
    Female = "3"
}

enum Direction {
    East = "东",
    West = "西",
    South = "南",
    North = "北"
}

  • Void

无类型,常见于没有返回值的函数。如果你的函数没有返回值,就可以使用void给函数定义返回值

function warnUser(): void {
  console.log("This is a warning message!");
}
  • Any

任意类型,允许在编程阶段不确定类型。不过该类型最好少用,不然写TypeScript就没有意义了

let notSure: any = 'not sure';
notSure = 123;
notSure = true;
  • Never

表示永不存在的类型,常见于抛出异常或无限循环。

function error(message: string): never {
  throw new Error(message);
}
function infiniteLoop(): never {
  while (true) {}
}
  • unknown
  1. TypeScript 3.0 引入了未知类型 unknown,它是 any 类型区分的安全类型
  2. 未知类型的变量只能赋值给 unknown 或 any 类型变量
  3. 未知类型的变量不能执行任何操作,必须使用类型断言或其他类型的运算符(如 instanceof,typeof,==,===等)将其转换成其他类型
let a: unknown = "hello"

//如果你想使用a的属性需要类型断言或者转类型判断,如下面
(a as string).length
//或者
if(typeof a === "string"){
    a.length
}
  • unknown、any的关系

说实话,一开始学习的时候, 我真的是被这几个类型搞懵了,看是作用差不多,其实包含关系和定义是不一样的。

  1. unknown 类型和 any 类型是可以互相赋值的,但unknown类型的值不能执行任何操作,any 类型的值可以执行任何操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值