String
与 JS 中的 String 类型是一致的,可以使用单引号或双引号来表示字符或者字符串。在 TS 中,也能使用 ES6 规范中的模板字符串。
let username:string = 'jonas'
let age:number = 18
let info:string = `My name is ${username},${age} years old.`
console.log(info)//My name is jonas,18 years old.
(提示:可以通过 node 命令来执行生成的 JS 文件:node 文件名.js)
Number
与 JS 中的 Number 类型一致,所有数值都有该类型表示,不区分整型和浮点型。通过变量:number 可以将一个变量声明为数值类型。
let age:number = 18
Boolean
布尔类型,与 JS 中的 Boolean 一致。通过:boolean 可以将一个变量声明为布尔类型。
let flag:boolean = true
Array
数组,与 JS 的数组一样,用于存储有序可重复的元素。不同的是,TS 中的数组可以像 Java 那样规定元素的类型。有两种方式可以定义数组:
//第一种:类型[]
let arr:number[] = [1,2,3,4]
//第二种:泛型
let list:Array<number> = [1,2,3,4]
Tuple
元组在本质上也是数组,上面提到数组可以指定元素的类型,元组则是特殊的数组,它是一个为每个元素指定类型的数组!!
let p:[string,number] = ['jonas',18]
编译过后元组会被转换为 JS 中的数组。
Enum
枚举类型,跟 Java 中的枚举类型一致,列举所有可选值的容器。
//声明一个枚举
enum Color{Red,Yellow,Green}
//可以通过 . 的方式来取到枚举里面的值
let c:Color = Color.Yellow
//也可以通过索引来取值,默认从0开始,也可以自定义
let c1:string = Color[1]
编译后:
//声明一个枚举
var Color;
(function (Color) {
Color[Color["Red"] = 0] = "Red";
Color[Color["Yellow"] = 1] = "Yellow";
Color[Color["Green"] = 2] = "Green";
})(Color || (Color = {}));
//可以通过 . 的方式来取到枚举里面的值
var c = Color.Yellow;
//也可以通过索引来取值,默认从0开始,也可以自定义
var c1 = Color[1];
Any
表示任意类型。
let a:any = 123
a = 456
a = [1,2,3]
将变量声明为一个可接受任意类型的变量,与不指定类型一致。
Void
表示方法没有返回值,与 Java 中的 void 是一致的。
//这是一个没有返回值的函数,不能写return语句!
function foo():void{
console.log('hei boy')
return 123//报错!!
}
Null 与 Undefined
他们是所有类型的子类型。也就是说,可以将 null 和 undefined 赋值给被声明为其他类型的变量。
Object
object 表示非原始类型,也就是除 number,string,boolean,symbol,null 或 undefined 之外的类型。与 JS 中的 Object 一致。