基础类型种类
TypeScript支持和JavaScript相同的数据类型且新增了枚举类型。有string,number,boolean,null,undefined,Array等。
字符串
let str: String = 'red'
而且还可以使用模板字符串,示例如下:
let name: string = '白玛嘉措'
let age: number = 25
let snetence: string = `hello, my name is ${name}.
I'll be ${age + 1} years old next month.
`
数字
跟JavaScript一样,TypeScript所有的数字都是浮点型,除了支持十进制和十六进制,TypeScript还支持二进制和八进制。示例如下:
let decLiteral: number = 6
let hexLiteral: number = 0xf00d
let binaryLiteral: number = 0b1010
let octalLiteral: number = 0o744
编译成js如下:
var decLiteral = 6;
var hexLiteral = 0xf00d;
var binaryLiteral = 10;
var octalLiteral = 484;
布尔值
let isDone: boolean = false
但是不能这么定义let isDone: boolean = new Boolean(1)
Null和Undefined
TypeScript里,undefined和null都有属于自己的类型undefined和null。和void相似,他们本身的类型用处不大。
let u: undefined = undefined
let n: null = null
数组
数组的定义有两种方式,第一种:
let list: number[] = [1,2,3]
第二种是使用数组泛型:
let list1: Array<number> = [1,2,3]
元组Tuple
元组类型允许表示的是一个已知元素的数量和类型的数组,各个元素类型均可不一样。
let x: [string, number] = ['hello', 10]
console.log(x[0].substr(1)) // ok
console.log(x[1].substr(1)) // Property 'substr' does not exist on type 'number'.ts(2339)
当访问的是一个越界的元素的时候,现在版本不再支持
x[3] = 'world'
// Type '"world"' is not assignable to type 'undefined'.ts(2322)
// Tuple type '[string, number]' of length '2' has no element at index '3'.ts(2493)
枚举
enum类型是对JavaScript标准类型的一个补充
enum Color {red, green, blue}
let c: Color = Color.green
任意值
在我们不清楚变量的类型的时候,我们可以指定为任意类型。
let notSure: any = 4
notSure = 'maybe a string instead'
notSure = false
空值
void表示没有类型,当一个函数没有返回值得时候,可定义为:
function warnUser(): void {
console.log('this is no return')
}
变量为void用处不大,因为只能赋值为null或者undefined