typescript 采用 “类型注解” 的方式对变量或方法进行显性的类型定义
注释:typescript 中的类型
首字母均不需要大写
1、boolean类型
与js同理,包含
true
和false
let isBoolean: boolean = false;
2、number类型
和JavaScript一样,TypeScript里的所有数字都是浮点数。 这些浮点数的类型是 number。 除了支持十进制和十六进制字面量,TypeScript还支持ECMAScript 2015中引入的二进制和八进制字面量
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
3、string 类型
let name: string = '绿库前端';
因为ts属于js的超集,完全兼容js、es6、es6语法;所以我们可以直接采用 “ 模板字符串 ” 定义多行文本和内嵌表达式
let name: string = '翟磊';
let team: string = '绿库前端';
let introduction: string = ` ${name} 是 ${team} 的前端开发工程师 `;
==> 翟磊是绿库前端的前端开发工程师
4、Arrary 数组类型
基础写法:类型[ ]
泛型写法:Array<类型>
let arr_1: number[] = [11,22,33];
let arr_1: string[] = ['aa','bb','cc'];
let arr_1: Arrary<number> = [11,22,33];
``
5、Tuple 元组类型
初次见到 “ 元组 ” 获取你会感到很陌生,这是啥**玩意;莫慌,其实元组类型说白了,就是数组的拓展,只不过它指定了数组的长度和每个位置元素的类型罢了。对,没错,就这么简单。是不是感觉自己一开始被唬住了,一万头曹尼玛,崩腾而过~~~~~~~
let tuple: [string, number];
tuple = ['翟磊',18]; == OK
tuple = ['翟磊','我爱你']; == Error
6、enum 枚举、泛型、object
如果你是初级前端工程师或是刚入行web小鸟,初次接触 “ 枚举、泛型 ” 或许你会感到迷茫,此时的你应该会和当初的我一样感觉这个小东东有些抽象,不过别怕,我已经给你们准备好的单独的一个章节分别去讲解 “ 枚举 、泛型、object”,在这一章节中,我将带你一步步的去看清 “ 枚举、泛型、object ” 的嘴脸,以及各自的使用场景。so ~~~ 请您移步!!!
7、any类型
在ts中任何类型都是any类型的子类型,也就是说任何类型都可以被归为any类型(
任何类型都可以赋值给any类型
),所以any类型也被认为是是 “ 全局超级类型 ”,绝对的superType
我们可以访问类型为any的变量的任意 “ 属性 ” 或 “ 方法 ”
let super:any;
super= [1,2,3]; == OK
console.log(super.length) == 3
super= 123 == Error
super= '翟磊我爱你' == OK
super= { name:'翟磊',age:18 } == OK
console.log(super.age) == 18
super = function(){} == OK
new super() == OK
8、Never类型
Never类型名义上与any类型正好相反,表示那些永远不存在的 “ 值 ” 的类型,never类型是任何类型的子类型,也可以赋值给任何类型;
没有类型是never的子类型,并且任何类型都不能赋值给never类型,any也不行,除了never本身
使用场景:never常用于异常抛出或是死循环,换句话说返回never的函数,必须永远无法执行结束
`此处引用官方案例说明`
// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
throw new Error(message);
}
// 推断的返回值类型为never
function fail() {
return error("Something failed");
}
// 返回never的函数必须存在无法达到的终点
function infiniteLoop(): never {
while (true) {
}
}
9、void类型
某种程度上来说,void类型像是与any类型相反,它表示没有任何类型,一般用于没有返回值的函数
let demo = (p:number):void=>{
console.log(123123123);
}
== ok
let demo2 = (p:number):void=>{
return p
}
== Error
10、Never 和 void 区别
void通常用于没有返回值的函数,也就是我们通常所说的 “该函数什么都不返回”,严格意义上来说,这种说法是错误的,应为一个函数及时没有return ,没有显式的返回值,但是通过console.log() 我们就不难发现,其实他是有返回值的:undefined
never返回类型的函数那才是真的
永不返回
,它也不返回undefined,因为该函数都没有正常结束,这就是我们上面所说的,该函数抛出异常了或是永远无法退出执行(死循环)
11、Null 和 Undefined
undefined和null两者各自有自己的类型分别叫做undefined和null。 和 void相似,它们的本身的类型用处不是很大,这里也就不做过多的赘述
默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量
let u: undefined = undefined;
let n: null = null;