TypeScript最大的一个特点就是变量是强类型的,也就是说,在声明变量的时候,我们必须给他一个类型。

TypeScript中的数据类型有:

  • Undefined :
  • Number:数值类型;
  • string : 字符串类型;
  • Boolean: 布尔类型;
  • enum:枚举类型;
  • any : 任意类型,一个牛X的类型;
  • void:空类型;
  • Array : 数组类型;
  • Tuple : 元祖类型;
  • Null :空类型。

Undefined类型

在js中当你定义了一个变量,但没有给他赋予任何值的时候,他就是Undefined类型。这可能和你以前学的语言稍有不同,其他语言会有个类型的默认值。

//声明数值类型的变量age,但不予赋值
var age:number
console.log(age) // undefined

Number类型

在TypeScript中,所有的数字都是Number类型,这不分是整数还是小数。

var age:number = 18
var stature:number = 178.5
console.log(age) // 18
console.log(stature) // 178.5

string类型

由单引号或者双引号括起来的一串字符就是字符串。

var cnblogs:string = "cnblogs.com/DoubleLoong"
console.log(cnblogs) // cnblogs.com/DoubleLoong

boolean布尔类型

作任何业务逻辑判断都要有布尔类型的参与,通过对与错的判断是最直观的逻辑处理。boolean类型只有两种值,true和false。

var b:boolean = true  
var c:boolean = false
console.log(b) // true
console.log(c) // false

enum 类型

这个世界有很多值是多个并且是固定的

,比如:

  • 世界上人的类型:男人、女人、中性
  • 一年的季节:春、夏、秋、冬 ,有四个结果。
// enum
enum REN{ nan , nv ,zhongxing}
console.log(REN.zhongxing)  //返回了2,这是索引index,跟数组很像。

enum REN{nan='男人',nv='女人',zhongxing='人妖'}
console.log(REN.zhongxing)  // 人妖

any类型

一个写惯了前端的人,有时候不自觉的就分不清类型了。这是个不好的习惯,也是前端的痛,就因为这个原因,JavaScript也多次被人诟病说大型项目不适合用JavaScript。但是习惯一旦养成,改是需要时间和磨练的。TypeScript友好的为我们提供了一种特殊的类型any,比如我们在程序中不断变化着类型,又不想让程序报错,这时候就可以使用any了。

var t:any =10 
t = "白夜"
console.log(t) // 白夜
t = true
console.log(t) // true

Null类型

与 Undefined 类似,都代表空。Null 代表是引用类型为空。意义不大,但是有用。

在TypeScrip中有几种特殊的Number类型 我们需要额外注意一下:

  • NaN:它是Not a Number 的简写,意思就是不是一个数值。如果一个计算结果或者函数的返回值本应该是数值,但是由于种种原因,他不是数字。出现这种状况不会报错,而是把它的结果看成了NaN。
  • Infinity :正无穷大。
  • -Infinity:负无穷大。

原文地址:http://jspang.com/post/typescript.html?tdsourcetag=s_pcqq_aiomsg