欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

typescript学习笔记--类型

程序员文章站 2022-07-12 16:28:59
...

- undefined null为所有类型子类型  

   let a: number =undefined 编译通过
   let notSure: any = 4
   可以赋值任何类型


-  元组
   let user: [string, number] = ['abc', 123]
   user.push(item) item只能是字符或者数字
-  interface
   声明   

  interface Person {
     id: number,
     name: string,
     age?: number,
    readonly sex: number
  }

-  可选值 变量后冒号前加?
   age?: number
-  只读属性,属性key前加readonly,不可以通过 obj.key 更改对应value

readonly sex: number

-  function

function add(x: number, y: number, z?:number):  number: {
   return x + y
}
let result  = add(2, 3)

   result为number,  中括号前面的类型限制函数返回的值得类型  
  参数中的可选参数后面不能再加确定的参数,报错  
  函数表达式写法

const add = (x: number): number => {
 return x
}
const result = add(3) // result 是number
const result: string = add(2)  // 报错
const result: (x: number) => number= add(?为啥可以)

interface iSum {
 ( x: number, y?: number): number
  // 声明函数类型
}
const result: iSum = add // 成立

-  类型推论
  ts会在没有明确声明一种类型时会根据值推断出一个类型

-  联合类型

let numberOrString: number | string

   变量只能访问两种类型的共有的属性和方法

-  类型断言 as

function getLen(input: string | number): number = {
  const str = input as string
}

相关标签: typescript