02.基础类型

基础类型

布尔类型

  • 定义方式
let bool: boolean = false

数值类型

  • 定义方式
 let num: number = 123
 num = 0b1111011 // 二进制123
 num = 0o173 // 八进制123
 num = 0x7b // 十六进制123

字符串类型

  • 定义方式
 let str: string = 'abc'
 str = `数值是:${num}`

数组

  • 定义方式1:
let arr1: number[] = [1, 2, 3]
  • 定义方式2:
let arr2: Array<number> = [1, 2, 3]
  • 定义方式3:
let arr3: (number|string)[] = [1, '2', 3]
  • 定义方式4:
let arr4: Array<number|string> = [1, '2', 3]

元祖(指定长度,类型,顺序)

  • 严格规定�了数据的长度,类型和顺序
  • 定义方式
let tuple: [string, number, string] = ['1', 2, '3']

枚举类型

  • 定义方式
enum Roles {
  SUPER_ADMIN = 1,  // 指定开始位置
  ADMIN,
  USER
}
console.log(Roles.SUPER_ADMIN, Roles.ADMIN, Roles.USER)
console.log(Roles[1])

any类型(表示任意类型)

  • 表示变量将来能赋予任意类型
  • 定义方式
let any: any = 'abc'
any = 456

void(表示不是任何类型)

  • 一般情况下,声明一个函数,如果该函数没有任何返回值,那么该函数的返回值为void类型
  • void类型的值可以被赋予undefined
  • 非严格模式下,void类型的值可以被赋予null,需要修改配置项strictNullChecksfalse
const consoleText = (text: string): void => {
  console.log(text)
}
consoleText('abcd')

let v: void
v = undefined

undefined 和 null

  • 定义方式
let u: undefined
let n: null

never类型

  • 永远不可能存在有返回值的类型
  • 一般用于抛出错误的函数和死循环
  • never类型可以是任意类型的子类型,但是never类型不能被赋值为任何类型
const errorFunc = (errMsg: string): never => {
  throw new Error(errMsg)
}

const infinitFunc = (): never => {
  while(true) {}
}

对象类型

let obj: object = {
  name: 'zhangsan',
  age: '30'
}

const consolePerson = (person: object): void => {
  console.log(person)
}
consolePerson(obj)

类型断言

  • 定义形式1:(<string>variable)
  • 定义形式2:(variable as string) -- 在react的jsx语法中,只支持这种定义形式
const getLength = (target: string|number): number => {
  if ((<string>target).length || (target as string).length === 0) {
    return (<string>target).length
  } else {
    return target.toString().length
  }
}

console.log(getLength(123))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,341评论 0 38
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 3,249评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,820评论 1 32
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,743评论 1 51
  • 在来惠州之前,完全不知道有这个城市的存在,完全没听说过。 杭州有飞惠州的航班,二个小时就到了,很方便。 军民两用的...
    好的517阅读 279评论 0 0

友情链接更多精彩内容