typescript基础类型

TypeScript 支持与 JavaScript 几乎相同的数据类型,此外还提供了实用的枚举类型方便我们使用。

布尔值

let isDone: boolean = false;
isDone = true;
// isDone = 2 // error

数字

let a1: number = 10 // 十进制
let a2: number = 0b1010 // 二进制
let a3: number = 0o12 // 八进制
let a4: number = 0xa // 十六进制

字符串

let name:string = 'tom'
name = 'jack'
// name = 12 // error
let age:number = 12
const info = `My name is ${name}, I am ${age} years old!`

undefined 和 null

数组

元组 Tuple

let t1: [string, number]
t1 = ['hello', 10] // OK
t1 = [10, 'hello'] // Error

枚举

enum Color {
 Red,
 Green,
 Blue
}

any

void


/* 表示没有任何类型, 一般用来说明函数的返回值不能是undefined和null之外的值 */
function fn(): void {
 console.log('fn()')
 // return undefined
 // return null
 // return 1 // error
}

object

function fn2(obj:object):object {
 console.log('fn2()', obj)
 return {}
 // return undefined
 // return null
}
console.log(fn2(new String('abc')))
// console.log(fn2('abc') // error
console.log(fn2(String))

联合类型

function toString2(x: number | string) : string {
  return x.toString()
}


function getLength(x: number | string) {

// return x.length // error

  if (x.length) { // error
    return x.length
  } else {
    return x.toString().length
  }
}

类型断言

function getLength(x: number | string) {
  if ((<string>x).length) {
    return (x as string).length
  } else {
    return x.toString().length
  }
}
console.log(getLength('abcd'), getLength(1234))

类型推断

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):