南辞派

导航

TypeScript简单类型声明

引言:typescript中为了使编写的代码更加规范,更有利于维护,增加了类型校验,在typescript中主要给我们设定了一下数据类型:

布尔类型(boolean)、数字类型(number)、字符串类型(string)、数组类型(array)、元组类型(tuple)、枚举类型(enum)、任意类型(any)、null和undefined类型、void类型、never类型...

在typescript中,规定在声明一个变量的同时,必须规定该变量的类型.

let 变量名:数据类型=值;

1.布尔类型(boolean)

声明布尔类型通过boolean

let flag:boolean=true; // 声明一个布尔类型变量flag,值为true

let flags:boolean=false; // 声明一个布尔类型变量flags,值为false

flag=false; // 将flag变量的值设置为false

2.数值类型(number)

在typescript中,数值类型包括了整型与浮点型,我们可以通过number直接声明一个整型或浮点型

let num:number=5; // 声明一个整型数值类型变量num;

let n1:number=3.1415; // 声明一个浮点型变量

num=9.254; // 转变赋值

3.字符串类型(string)

在typescript中,字符串类型可以通过单引号 ' '或双引号" " 进行声明,通过string标识

let str:string="Hello";

let str1:string;
str1='World';

let str2:string|boolean;

let lastStr='TypeScript';

4.数组类型(array)

在typescript中,数组的声明方式我们可以通过两种方式实现

(1)let 数组名:数组元素类型[]=[数组元素...]; // 在声明数组的同时也规定了数组元素值的类型;

let arr:string[]=['h','e','l','l','o']; // 声明一个数组,同时规定数组元素必须是字符串类型

let arr:number[]=[1,2,3,4,5]; // 声明一个数组,同时规定数组元素必须是数值类型

......

错误写法:
let arr:number[]=['hello','str',2,3.14]; // 数组元素必须是数值类型;

(2)let 数组名:Array<数组元素类型>=[数组元素值] //在声明数组的同时也规定了数组元素值的类型;

let arr:Array<string>=['W','o','r','l','d']; // 声明一个数组,同时规定数组元素必须是字符串类型

let arr:Array<number>=[1,3,5,2,1,6]; // 声明一个数组,同时规定数组元素必须是数值类型


错误写法:
let arr:Array<number>=['hello','str',2,3.14]; // 数组元素必须是数值类型;

5.元组类型(tuple)

在typescript中,元组类型属于数组类型的一种,只是在于元组类型可以规定数组元素值的多个数据类型.

let arr:[string,number,boolean]=['ts',3.1415,false]; // 规定数组元素的值类型依次为字符,数值,布尔类型

6.枚举类型(enmu)

枚举类型主要用于标识代码状态,是一个标识符.当我们需要表示某些变量表示什么意思时,可以通过枚举类型

语法:(枚举类型首字母大写)

enum 变量名{
	变量名=含义,
	...
}

例如:

enum Flag{
	success=1,
	error=-1,
}

// 数字枚举
enum Direction {
    Up = 1,
    Down,
    Left,
    Right
}

//我们定义了一个数字枚举, Up使用初始化为 1。 其余的成员会从 1开始自动增长。 换句话说, Direction.Up的值为1, Down为 2, Left为 3, Right为 4。
    

enum Status {
    Error = '失败',
    Success = "成功",
    Message = "消息",
    More = '更多',
  }
  console.log(Status);  //{Error: "失败", Success: "成功", Message: "消息", More: "更多"}
  console.log(Status.Error); // 失败
    
    
 enum Status2{
     Error,
     Success,
     Message,
     More,
 }
 console.log(Status2) //{0: "Error", 1: "Success", 2: "Message", 3: "More", Error: 0, Success: 1, Message: 2, More: 3}

7.任意类型(any)

所谓任意类型就是相当于没有给变量规定值的类型,我们可以任意赋值,任意类型通过any声明

声明任意类型即按照javascript的方式书写.

语法:

let 变量名:any=值
或
let 变量名; // 会默认设置为any类型
变量名=12;
变量名=true;
变量名='Hello';


// 若是在声明变量时赋初值,则初值类型默认为该变量的类型
let str='Hello'; // 变量str规定为string类型,不能再赋值其他类型了

例如:

let str:any='Hello';
str=3.14;
str=[1,3,2,'5'];
console.log(str); // 1,3,2,'5';

let num=12; // num为数字类型;
num='Hello'; // 错误写法,num为数字类型,不能赋值字符.

8.null和undefined类型

undefined是其他类型(never类型)的子类型

声明方式:

// 方式一:
let num:undefined; // undefined

//方式二(推荐使用):
let str:string|undefined; // 若赋值,则为值,若没有赋值,则为undefined;
console.log(str); // undefined
str='Hello'
console.log(str); // Hello

null的声明方式与undefined相似

声明方式:

let num:null; // 不能进行赋值,返回值为null,当声明为null类型后,就不能再进行赋值操作了.

9.void类型

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

语法:

function getName():void{
	...执行代码.
	// 注意,末尾没有return语句
}

10.never类型

never类型表示其他类型(包括null与undefined)的子类型,表示从不会出现的类型

语法:

let num:never;

11.联合类型使用

所谓联合类型,即在声明一个变量的时候,通过 | 符号同时为其赋予多个数据类型,这样我们就可以进行不同类型赋值

联合类型相当于任意类型的特定版本,通过规定类型范围来实现需求

let 变量名:数据类型1|数据类型2|数据类型3...

例如:
let str:str|number|boolean;
str=5;
str=true;
str='Hello';
str=undefined; // 错误,这里并没有声明可以赋值undefined类型

posted on 2020-10-27 14:44  HuaiJinCi  阅读(424)  评论(0编辑  收藏  举报