自学内容网 自学内容网

05_TypeScript 中的数据类型

一、概述

TypeScript 中为了使编写的代码更加规范,更有利于维护,增加了类型校验,在 TypeScript 中主要给我们提供了以下数据类型:
布尔类型(boolean)
数字类型(number)
字符串类型(string)
数组类型(array)
元组类型(tuple)
枚举类型(enum)
任意类型(any)
null 和undefined
void 类型
never 类型

二、详解

当定义为布尔类型的变量赋值数字或者其他类型的时候,监视时就不能编译通过并报错
在这里插入图片描述

布尔类型(boolean) true / false

//布尔类型(boolean) true / false
var flag:boolean = true
flag = false

数字类型(number)

TypeScript 没有浮点型和整型的区分,只要是数字就都是 number 类型

//数字类型(number)
var num:number = 123
num = 333
num = 333.666
console.log(num)

字符串类型(string)

//字符串类型(string) 
let str:string = '1230'
// str=123 // 错误写法
str = '你好,我有一个帽衫'
console.log(str)

数组类型(array)

// 数组类型(array)
//es5 var arr = [1,'123',false]
//1、第一种定义数组的方式,数组中的所有数值都要统一类型,否则报错
let arr:number[] = [1,2,3,4]
let arr1:string[] = ['123','js']
console.log(arr, arr1)
//2、第二种定义数组的方式
let arr2:Array<number> = [1,3,5,4,6]
let arr3:Array<string> = ['js','ts','java']
console.log(arr2, arr3)
// 3、第三种写法
let arr4:any[] = [1,2,3,4, true, '123']
console.log(arr4)

元组类型(tuple) 属于数组的一种

// 元组类型(tuple) 属于数组的一种
// 可以指定数组中的每一个元素的类型
let arr4:[string, number, boolean] = ['ts', 2.5, true]
console.log(arr4)

枚举类型(enum)

枚举类型(enum):
随着计算机的不断普及,程序不仅只用于数值计算,还更广泛地用于处理非数值的数据,例如:性别、月份、星期几、颜色、单位名、学历、职业等,都不是数值数据。
在其他程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。
也就是说,事先考虑到某一变量可能取到的值,尽量用自然语言中含义清除的单词来白哦是它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称为枚举类型。

// enum 枚举名 {
//   标识符[=整形常数],
//   标识符[=整形常数],
//   ...,
//   标识符[=整形常数],
// };
// flag 1表示 true 0 表示false
// pay_status 0 未支付 1 支付 2 交易成功

enum Flag {
  success=1,
  erorr=0
}
let f:Flag = Flag.success
console.log(f, Flag.erorr)
// 如果默认定义枚举类型不赋值的话,打印的就是 索引值,后续的字段打印的会是上一个的值+1
enum Color{
  red,
  blue=20,
  orange
}
let c:Color = Color.red

console.log(c)//0
console.log(Color.orange) // 21

任意类型(any)

随便一个类型都可以赋值

let a:any = 123
a = "123"
a= false
console.log(a)

任意类型的用法:
通常是获取dom 节点后添加属性和样式,节点不属于其他的类型,所以使用 any 类型来定义是合适的

let oBox:any = document.getElementById("app")
oBox.style.color = 'blue'

null 和undefined 其他数据类型的子类型

//null 和undefined 其他数据类型的子类型,也就是 never 的子类型
var fork:number;
console.log(fork) // 报错

var fork1:undefined|number;
console.log(fork1)//不报错

let num1:null;
console.log(num1)//报错
let num2:null|undefined|number;
console.log(num2)//不报错

在这里插入图片描述

void 类型

TypeScript 中的 void 表示没有任何类型, 一般用于定义方法的时候方法没有返回值

// es5 的定义方法
function run() {
  console.log("run")
}
run()

//方法没有返回值
function run1():void {
  console.log("run")
}
run1()

// 方法返回 number 类型
function run2():number {
  console.log("run")
  return 3
}
run2()
//返回 字符串类型
function run3():string {
  console.log("run")
  return "run"
}
run3()

never 类型

never 类型:是其他类型(包括 null 和 undefined )的子类型,代表从不会出现的值,这意味着声明 never 的变量只能被 never 类型所赋值

var a:undefined;
a = undefined;

var b:null;
b = null
b = 0// 错误写法

var ab:never;
// ab = 123// 错误的写法

ab = (()=>{
  throw new Error("错误")
})()

原文地址:https://blog.csdn.net/qq_46143850/article/details/140346599

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!