typescript 的数据类型

boolean(布尔类型)

let flag: boolean = true
// flag = 333; // 错误
flag = false //正确

number(数字类型)

let num: number = 123
// num = '333'; // 错误
num = 456 //正确


进制表示
let hexLiteral: number = 0xf00d // 十六进制

string(字符串类型)

let str: string = 'ts'
str = 'test'

模板字符串包裹
let sentence: string = `Hello, my name is ${ name }

array(数组类型)


两种使用方式

let arr: string[] = ['1', '2']


let arr: Array = [1, 2]

tuple(元组类型)

元祖类型,允许表示一个已知元素数量和类型的数组,各元素的类型不必相同

let tupleArr: [number, string, boolean]
tupleArr = [12, '34', true] //ok
typleArr = [12, '34'] // no ok

enum(枚举类型)

enum Color {
  Red,
  Green,
  Blue,
}
let c: Color = Color.Green


enum num{
  a=1,
  
  b,

  c,
}
给默认值,b ,c递增默认值  b=2,c=3

any(任意类型)

使用any类型允许被赋值为任意类型,甚至可以调用其属性、方法

null 和 undefined 类型

默认情况下nullundefined是所有类型的子类型, 就是说你可以把 null和 undefined赋值给 number类型的变量

let num: number | undefined // 数值类型 或者 undefined
console.log(num) // 正确
num = 123
console.log(num) // 正确

void 类型

用于标识方法返回值的类型,表示该方法没有返回值

function hello(): void {
  alert('hi')
}

never 类型

never是其他类型 (包括null和 undefined)的子类型,可以赋值给任何类型,代表从不会出现的值

但是没有类型是 never 的子类型,这意味着声明 never 的变量只能被 never 类型所赋值。

never 类型一般用来指定那些总是会抛出异常、无限循环

let a: never
a = 123 // 错误的写法

a = (() => {
  // 正确的写法
  throw new Error('错误')
})()

// 返回never的函数必须存在无法达到的终点
function error(message: string): never {
  throw new Error(message)
}

object 对象类型

let obj: object
obj = { name: 'zhang', age: 18 }

你可能感兴趣的:(typescript,javascript,前端)