今天要讲的的是TypeScript中的基础数据类型。该知识点虽然是TypeScript的基础中的基础,但是你也只有把基础打扎实了,将来在闯荡江湖的时候才能够做到所向披靡,横行于天下!
在正式开篇之前,小伙伴们应该先弄清楚两个概念:强类型与弱类型。没错,这两个词都是形容编程语言的,即强类型语言与弱类型语言。
java
、 .NET
、 C++
当然还有咱们的 TypeScript
需要注意的是,强类型语言当中的变量一旦被定义为某种数据类型后,便不可以轻易将其它类型的值赋予它。因为强类型语言是用情比较专一的!除非你对其进行强制转换,否则它就会永远用情专一下去了。
vb
、 php
自然还有你非常熟悉的 JavaScript
弱类型语言这货对于开发者而言自然是极方便的,用起来也是超爽的,因为开发者可以将注意力集中在业务的处理以及逻辑的开发上。但是随着时间的推移,你的项目很有可能壮大了,功能也复杂了,那么问题也将一一暴露了!
JavaScript
声明变量有三种方式: var
、 let
以及 const
。在这里推荐小伙伴们使用 let
来代替 var
。 因为 TypeScript
是 JavaScript
的超集,所以它本身就支持 let
、 const
,同时还有 var
。
TypeScript 变量的命名规则与JS是相同的:
TypeScript的变量在使用前需要先声明:
let [变量名] : [类型] = 值;
例如:
let userName:string = "张培跃";console.log(userName);// 张培跃
undefined
:let [变量名] : [类型];
例如:
let userName:string;console.log(userName);// undefined
boolean
用于最直接的逻辑处理,它只有两种值:对( true
)、错( false
)
let isShow:boolean = true;console.log(isShow);// true
这里需要注意的是,因为 TypeScript
是强类型语言,初始值必须要为指定的类型,否则会提示错误:
let isShow:boolean = "对";// Error
当然,更不允许修改为其它类型,以下会提示错误:
let isShow:boolean = true;isShow = 34;
和 JavaScript
一样, TypeScript
里的所有数字都是 number
类型,在这里不分整数与小数。
let age:number = 18;let price:number = 12.56;console.log(age,price);// 18 12.56
和 JavaScript
一样,可以使用双引号( "
)或单引号( '
)表示字符串:
let init:string = "同事说,他在写i++的时候总觉的自己写的是我艹";init = '杀一个程序员不需要用枪,改三次需求就可以了。';
当然你还可以使用字符串模板:
let one:string = "熟悉哪种语言?";let two:string = "TypeScript";let three:string = "你被录取了";let num:number = 9000;let str:string = `面试官:"${one}"应聘者:"${two}"面试官:"${three},薪资:${num+90000}"`console.log(str);/*打印结果:面试官:"熟悉哪种语言?"应聘者:"TypeScript"面试官:"你被录取了,薪资:99000"*/
在类型后面接上 []
,表示数组:
let arr: number[] = [1, 2, 3];
以上示例指定了数组元素必须为 number
类型,如果指定其它类型,会给予错误提示:
let arr: number[] = [1, 2, 3,"四"];
另外还有一种定义数组的方法即泛型数组,在这儿先不涉及,后面讲泛型的时候再细唠。
元组类型在 JavaScript
当中是木有的,但是在其它语言,例如 python
、 c#
当中是有的。所以语言了解多了的话,总能找到一些相通点。 元组类型可以用于表示元素类型不同的数组,但前提是你要知道元素的数量与类型。 如下,我定义了第一个元素为 string
类型,第二个元素为 number
类型的元组。
let arr: [string, number] = ["TypeScript",2];
注意相对应值的类型一定要相同,否则会有错误提示:
let arr: [string, number] = [2,"TypeScript"];// Error
any
类型就比较厉害了,因为它可以表示任意类型,可见它是多么的没有原则! 当你数据类型不确定时,或者数组当中只知道部分元素的类型时,你就可以使用它了。
let arr:any[] = [1,true,2, "TypeScript"];let str:any = "你过来啊!";str = true;
null
与 undefined
在学习 JS
时应该已经很熟悉了。关于 null
与 undefined
类型定义自身的这种行为,本身没有什么意义:
let un: undefined = undefined;let nu: null = null;
你可以将 null
与 undefined
赋值给任意类型的变量,比如 string
类型:
let str : string = undefined;
void
类型与 any
类型相反,它表示没有任何类型。声明一个 void
类型的变量是没有什么意义的,因为它的值只能是 undefined
和 null
:
let a: void = undefined;let b: void = null;
void
类型主要用于当函数没有返回值时,将返回的类型定义为 void
类型。以下代码的意思是 fn
函数无返回值。
function fn(): void { console.log("无,万物之始也!");}
在此不做解释,后续会单独来讲……
最后,一定要将代码多敲打几遍!
—————END—————