Typescript限定类型
我们把这种类型都叫做强类型
var a: Number = 3;
var b: Number = 4;
b="a"变量声明限定类型后,不能改变变量值的类型。
当前函数设置为输出number类型。
当前函数必须有返回值,且返回值必须为number类型。
eg:
function abcd(): number {
var a: number = 1;
return a;
}
void
不需要任何返回值的情况下,输出值为void
function abc(): void {
//不返回任何值的函数 只执行
}
函数的参数在使用时也必须要给定参数类型
function abcdd(_a: number, b: string): void {
//不返回任何值的函数 只执行
}
函数中的参数给定类型,我们在执行函数时,必要限定了类型
ts为了照顾原生js 他的模式化是一种模糊的鉴定
比如你对变量a没有给定类型,在其它的强类型中是会报错的,但是在ts中,也并不会报错。
类
构造函数后不需要给给定类型
class Box {
// 为什么不需要给定类型呢,因为这个函数本身在执行时,new它以后得到对象,平时不会最直接使用box函数,而是使用new的方式。
constructor() {}
play(): void {}
run(): number {}
}
类型 数组、元组
对于数组的类型给定方式
我一般使用 数组范型 的方式
var arr: Array<number> = [1, 2, 3, 4];
而习惯C语言的同学,一般写成:
var arr1 = number[] = [1,23,4]
数组类型当中的数据类型必须相同
那么要是数组类型不同怎么办,如果不同呢,我们可以定义为元组。
定义元组类型时
var list:[string,number,boolean] = ['a',10,true]
不同的类型元素的数组,这里叫做元组(元素的组合),元组调用的时候,调用的方式和我们数组的调用方式是一样的。
枚举类型
// 你可以把枚举称为常量的定义模式
enum STATUS{WALK='WALK',RUN="run "}
var gh = STATUS.WALK
any类型
var ae:any=1;
void
void主要用于函数,不返回任何值
function abc(): void {
//不返回任何值的函数 只执行
}
never
never类型是指用不存在的值的类型。用于用于无法到达终点的函数
function error(message:string):never{
throw new Error(message)
}
function infiniteLoop():never{
while(true){}
}
object 对象型
错误的给定方式:
var arrbbb:Array<object> = [{name:''}]
正确的给定方式为:
class ItemVo{
id:number = 0;
name:string = '';
price:number = 1;
selected:boolean = false;
constructor(_id:number,_name:string,_price:number,_selected:boolean){
this.id = _id;
this.name = _name;
this.price = _price;
this.selected = _selected;
}
}
var arrtEST:Array<ItemVo> = [
new ItemVo(100,'a',1,false),
new ItemVo(1001,'a',1,false),
new ItemVo(1002,'a',1,false)
]
看到这里,大家会想起元组,元组是这种类型,但是元组是数组类型,元组是一个一个元素给的,但是这是一个一个key给定的。