概述
javascript
是一种弱类型语言,弱类型很随意,很灵活,这是它的优点,同时也是它的缺点;同一个变量,既可以是数值型,也可以是字符串型,还可以是其他各种对象类型,在js中,给你一个变量名,你能一眼就确定它的类型吗,恐怕大多数情况下,你不能确定吧,即使最开始是一个数字赋值给了它,你咋知道中间的代码不会把它变成其他类型呢。
强类型和弱类型
首先让我们简单区分一下什么是强类型和弱类型语言吧,当然js是名副其实的弱类型语言
强类型
给定一个变量, 首先得声明它的类型 int a;
当然可以同时给它赋初值,int a = 1;
。后续我们如果给它赋值,只能赋值为整型的,a = 2;
,如果你想给它赋值为字符串型,如a = "xxx";
编译器直接就给你报错了,所以也谈不上后续的过程了。
弱类型
弱类型语言就没有这些限制
下面步入正题
typescript
typescript
是javascript
的超集,完全兼容javascript
,但又扩展了许多功能,相信在了解之后你会爱上它的,为什么这么说呢,因为给定你一个对象,你可以借助于编辑器的只能提示,一窥它里面有哪些属性,那些方法等,不用到处找定义。typescript
的官网在此
声明变量类型的形式为 var a: Type
, Type
为类型,一旦声明了Type
类型,后续a只能接收Type
类型,不能接收其他类型,因为编辑器会给你智能提醒的,当然编译的时候,也会给你错误的。
基本类型
基本类型有 number
,string
,boolean
,undefined
,null
var v1: number = 1
var v2: string = 'hello'
var v3: boolean = true
var v4: undefined = undefined
var v5: null = null
数组类型
// 字串数组
var arr_s: string[] = ['xxx', 'yyy']
// 数字数组
var arr_n: number[] = [1, 2]
枚举
enum Gendar {
male,
female
}
var g: Gendar = Gendar.male
万能类型
any
也就是相当于没有声明任何类型了
var a: any = 123