【TypeScript】知识点梳理(一)

#国庆快乐!来点干货~ #

#项目中团队总结生产问题,40%是类型相关问题,可见TS的重要性与向好趋势#

TS是JS的超集

类型

Number、String、Boolean

首字母大小写,类型有区别,譬如:

string是基元(原始类型)

let str = 'hello'

String是包装对象

let str = new String('world')

String对内存不友好,建议用string

string

number

boolean

null

undefined

bigint

symbol

object

        object

        存储 非原始类型

        快捷记忆:以上js原始类型不可存

        Object

        存储 可调用Object方法的类型

        快捷记忆:除null、undefined外的

any

可以赋值给任意类型,但应该避免使用,可当成一种逃生方式

let a: any
let b: string
a = false
b = a
console.log(b) // false

unknown

未知类型,但不能直接分配而破坏其他类型,可以先判断或者使用断言

// 断言
let a: unknown
a = 'hello'

let b: string

// 方式一
b = a as string

// 方式二
b = <string>a

never

不会有值

void

空,undefined

tuple

元组,可精确描述的数组

1.数组类型

2.固定数量,?表示可选

3.每个元素类型已知

let arr1: [string, number]
let arr2: [string, number?]
let arr3: [string, ...number[]] // string后紧跟0个及以上数量的数值

enum

定义一组命名常量

        数字枚举

        成员值是数值,会自动递增,且可反向映射

enum Direction {
    Up, // 0
    Down,
    Left,
    Right
}

// Direction[0]
// Direction.Up 更建议,清晰

function walk(dir: Direction) {

}

walk(Direction.Up)

        字符串枚举

        成员值是字符串,无反向映射

enum Direction {
    Up: 'up',
    Down: 'down',
    Left: 'left',
    Right: 'right'
}

// Direction.Up 只能这么写

function walk(dir: Direction) {

}

walk(Direction.Up)

        常量枚举

        使用const定义,编译时内联,减少生成js代码量

const enum Direction {
    Up,
    Down,
    Left,
    Right
}

type

为任意类型创建别名

type Status = number | string;
type Gender = '男' | '女';
type Classroom = {
    grade: number
    no: number
}
type Human = {
    name: string
    gender: Gender
}
type Student = Human & Classroom

const stu: Student = {
    name: '小明',
    gender: '男',
    grade: 2,
    no: 3,
} 

操作

1.npm i -g typescript

2.编写一个ts文件

3.tsc 文件

4.node 文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值