当前位置: 首页 > news >正文

【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, // 0Down,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: numberno: number
}
type Human = {name: stringgender: Gender
}
type Student = Human & Classroomconst stu: Student = {name: '小明',gender: '男',grade: 2,no: 3,
} 

操作

1.npm i -g typescript

2.编写一个ts文件

3.tsc 文件

4.node 文件

http://www.lryc.cn/news/453924.html

相关文章:

  • DMA方式在执行中断处理程序时不中断现行程序吗
  • Redis:string类型
  • 【C++ STL】手撕vector,深入理解vector的底层
  • 【Android】CarWatchDog I/O监控服务
  • 如何使用 Django 框架进行用户认证的详细指南,涵盖用户注册和登录功能的实现。
  • C++ 语言特性21 - 别名模板
  • Jenkins pipeline配置示例
  • Navicat for MySQL 常见问题
  • Windows:win11旗舰版连接无线显示器,连接失败
  • Android2024.2.1升级错误
  • 【PHP陪玩系统源码】游戏陪玩系统app,陪玩小程序优势
  • Arduino UNO R3自学笔记20 之 Arduino如何测定电机速度?
  • ChatGPT全新功能Canvas上线:开启智能编程与写作新篇章
  • 南沙C++信奥赛陈老师解一本通题 2005:【20CSPJ普及组】直播获奖
  • Llama 3.2 视觉能力评估
  • 前端性能优化 面试如何完美回答
  • 程序猿成长之路之设计模式篇——设计模式简介
  • 基于Node2Vec的图嵌入实现过程
  • 国庆刷题(day4)
  • 如何在 Python 3 中制作一个计算器程序
  • 搭建shopify本地开发环境
  • 【在Linux世界中追寻伟大的One Piece】进程信号
  • MySQL中NULL值是否会影响索引的使用
  • Chrome 浏览器:现代网络浏览的先锋
  • 蓝牙定位的MATLAB仿真程序(基于信号强度,平面内的定位,四个蓝牙基站)
  • 解决docker一直出现“=> ERROR [internal] load metadata for docker.io/library/xxx“的问题
  • Django学习笔记五:templates使用详解
  • PriorityQueue分析
  • Hive数仓操作(六)
  • centos7安装配置python3环境