Zhi-Ling

You can do Everything you want

0%

TS

Brief IntroSome information about TypeScript

  • Basic Type
  • Literal Type
  • Any

类型

基础类型

原始类型

  • number
  • string
  • boolean
  • null
  • undefined
  • symbol

对象类型

  • object(数组,对象,函数)

新增类型

联合类型

由两个或多个其他类型组成的类型,可以是这些类型中的任意一种

let 变量:类型 1 | 类型 2 | 类型 3 …. = 初始值
let arr1 :number | string = 1 // 可以写两个类型

自定义类型 (类型别名)

自己定义的类型名过长时,定义一个别名,别名一般是 首字母大写

type 别名 = 类型
type s = string // 定义
const str1:s = ‘abc’
const str2:string = ‘abc’

给复杂类型起别名

type NewType = string | number
let a: NewType = 1
let b: NewType = ‘1’

函数

  • 普通函数:function 函数名 (形参 1: 类型 = 默认值, 形参 2:类型 = 默认值,…): 返回值类型 { }
  • 箭头函数:const 函数名(形参 1: 类型 = 默认值, 形参 2:类型 = 默认值,…): 返回值类型 => { }
  • 统一定义类型

    type Fn = (n1:number,n2:number) => number

const add3 : Fn = (a,b)=>{return a+b }

  • 返回值为 void:const add = (): void => {}

  • 对象类型

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // 创建类型别名
    type Person = {
    name: string,
    age: number
    sayHi(): void
    }

    // 使用类型别名作为对象的类型:
    let person: Person = {
    name: '小花',
    age: 18
    sayHi() {}
    }
  • 接口类型(interface)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // 接口的写法-------------
    interface IPerson {
    name: string,
    age: number
    }

    const user1:IPerson = {
    name: 'a',
    age: 20
    }

    // type的写法-------------
    type Person = {
    name: string,
    age: number
    }
    const user2:Person = {
    name: 'b',
    age: 20
    }

字面量类型

let str1 = ‘hello TS’ : str1 是一个变量 (let),它的值可以是任意字符串,所以类型为:string
const str2 = ‘hello TS’:str2 是一个常量 (const),它的值不能变化只能是 ‘hello TS’,所以,它的类型为:’hello TS’

any

临时使用 any 来 “避免” 书写很长、很复杂的类型

Welcome to my other publishing channels