TypeScript中的基本类型

一、类型声明

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

二、自动类型判断

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

三、使用方式

1.数字类型

定义一个变量表示任意数字:

let num:number;
num = 10;
let num1 : number = 10;

2.字符串类型

定义一个变量表示任意字符串:

let str : string;
str = 'helloworld';
let str1 : string = 'ts';

3.布尔类型

定义一个变量表示布尔值:

let bool : boolean;
bool = true;
let bool1:boolean = false;

知识点:如果想一个变量表示多个类型,可以用 | 来联合,如下

let lh:boolean | string;
lh = true;
lh = 'hello';

4.any类型

表示的任意类型,一个变量设置类型为any后,相当于对改变量关闭了TS的类型检测.
使用TS时,不建议使用any类型。

let any1 : any;
// let any1; // 如果变量后面没有带类型,就隐式具有“any”类型
any1 = 10;
any1 = 'hello';
any1 = true;

5.unknown类型

表示未知类型

let unk :unknown;
unk  = 10;
unk = 'hello';
unk  = true;

注意点:当定义了一个变量a,any类型可以赋值给a,而unknown却不行

let a : string;
a = any1;
//a = unk; 这里会报错

所以可以说unknown实际上就是一个类型安全的any。
但类型断言,可以用来告诉解析器变量的实际类型,就可以完成赋值

a = unk as string;
a = <string>unk;

6.void类型

void用来表示空,以函数为例,就表示没有返回值的函数

function fn():void{
    return;
}

注意:fn()后面跟了类型,那么返回值就要返回对应的类型,否则报错,如

function fn():number{
    return 123;
}

7.never类型

never 表示永远不会返回结果,一般用于抛出错误,然后函数停止

function fn1():never{
    throw new Error('报错了!')
}

8.object类型

表示一个js对象,但是这个并不是很实用,因为在js中对象太多了,一切皆对象,如下

let obj: object;
obj= {};
obj= function(){}

那么问题来了,如果我们不用这个,我们用什么来表示对象。其实我们在限制一个对象,更重要是限制其所包含的属性值。

let obj1:{name:string};
obj1 = {name : 'lilei'}

在这里要注意,声明时有多少个属性,赋值就要一一对应,否则报错。但是,如果在属性名后面加一个?则表示属性是可选的

let obj2:{name:string,age?:number};
obj2 = {name : 'lilei'}

如果不确定赋值时有多少个属性时,我们可以用[propName:string]:any 表示任意类型的属性,如

let obj3:{name:string,[propName:string]:any};
obj3 = {name:'lei',a:1,b:3}

9.array类型

数组类型的声明有两种,表示同一个类型的数组

  • 类型[]
  • Array<类型>
// sring[] 表示字符串数组
let arr:string[];
arr = ['a','b']
// number[]表示数值数值
let arr1:number[]
let arr2 :Array<number>
arr2 = [1,2,3]

10.元组

元组,就是固定长度的数组,语法:[类型,类型…]

let tup : [string,string]
tup = ['hello','world']

11.枚举

枚举类型用于定义数值集合。

enum Color {Red, Green, Blue};
let c: Color = Color.Blue;
console.log(c);    // 输出 2

知识点:我们上边用 | 可以定义多个类型,如果用&呢?他表示同时

let a :string & number;

但实际上是没有这样一个变即属于字符有属于数字,所以这里是没意思的,一般用于对象的属性值,如下

let obj : {name:string} & {age:number}
obj = {name:'aa',age:12}

还有一个类型的别名

type myType = 1 | 2 | 3 | 4;
let a : myType;
let b: myType;
let c: myType

这里的话a,b,c的类型都是myType。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值