类型

typescript-logo.jpg

基础类型种类

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容