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

20分钟学会TypeScript

在B站看的【吴悠讲编程】的课程《20分钟学会TypeScript 无废话速成TS》,全长只有20分钟,真的是极致简单的入门视频,用这个专栏记录一下学习笔记。 


目录

1 必备概念

1.1 typescript使用方式

1.2 typescript介绍

2 类型推断

3 类型注解

4 类型断言

5 基础类型和联合类型

6 数组、元祖、枚举等

6.1 数组

6.2 元组

6.3 枚举

6.4 其他

7 函数

8 接口

9 类型别名

10 泛型


1 必备概念

1.1 typescript使用方式

  • 本地下载使用:npm i typescript -g
  • 在typescript官网:演练场playground

1.2 typescript介绍

javascript本身是弱类型脚本语言,本身使用起来是非常灵活的,但是当项目体量比较大的时候,这种灵活的编程方式不利于后期代码维护,由此,typescript应运而生。

2 类型推断

typescript会根据给变量存放的初始值进行变量类型限定。

let str = 'abc'
str = 10     //错误,str以后只能存放字符串值

3 类型注解

一般不建议使用类型推断,会使用类型限定,会通过冒号进行类型限定。

let str: string = 'abc'//或者是:
let str: string    //可以初始时不给值,做一个预声明
str = 'abc'

4 类型断言

let numArr = [1, 2, 3]
const result = numArr.find(item => item > 2) as number    //人工干预,断言result为number类型
result * 5

5 基础类型和联合类型

一般有字符串string、数值型number、布尔型bool

let v1: string = 'abc'
let v2: numbe = 10
let v3: boolean = true
ley nu: null = null
let un: undefined = undefinedlet v4: string | null = null
let v5: 1 | 2 | 3 = 2

6 数组、元祖、枚举等

6.1 数组

有以下两种声明方式:

let arr: number[] = [1, 2, 3]
let arr1: Array<string> = ['a', 'b', 'c']

6.2 元组

元组也可以存储数据,但是限定了存储的数据个数,以及每个数据类型。

let t1: [number, string, number] = [1, 'a', 2]
t1[0] = 100
t1[1] = 'b'let t2: [number, string, number?] = [1, 'a']

6.3 枚举

enum MyEnum {A,B,C
}//访问方式
console.log(MyEnum.A)
console.log(MyEnum[0])

6.4 其他

严格模式下,void只能被分配undefined值

void

7 函数

function MyFn (a = 10, b = number, c?: string, ...rest: number[]): number {return 100
}const f = MyFn(20, 100, 'abc', 1, 2, 3)

8 接口

接口interface通常用于对象的定义。

interface Obj {name: string,age: number
}const obj1: Obj = {name: 'a',age: 10
}const obj2: Obj = {name: 'b',age: 20
}

9 类型别名

type MyUserName = string | number
let a: MyUserName = 10

10 泛型

function myFn<T>(a: T, b: T): T[] {return [a, b]
}myFn<number>(1, 2)
myFn<string>('a', 'b')
myFn('a', 'b')

http://www.xdnf.cn/news/16272.html

相关文章:

  • 若依框架 ---一套快速开发平台
  • 从零本地部署使用Qwen3-coder进行编程
  • NX848NX854美光固态闪存NX861NX864
  • Dockerfile 文件及指令详解
  • Java面试题及详细答案120道之(001-020)
  • 计算机网络(第八版)— 第2章课后习题参考答案
  • 机器学习中knn的详细知识点
  • 【面试场景题】外卖点餐系统设计思路
  • Flink 自定义类加载器和子优先类加载策略
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 主页-评论用户时间占比环形饼状图实现
  • 编程语言Java——核心技术篇(三)异常处理详解
  • Springboot+activiti启动时报错XMLException: Error reading XML
  • 深度学习day02--神经网络(前三节)
  • Elasticsearch-8.17.0 centos7安装
  • Ubuntu 环境下创建并启动一个 MediaMTX 的 systemd 服务
  • 栈与队列:数据结构核心解密
  • 链表反转算法详解
  • Fluent自动化仿真(TUI命令脚本教程)
  • springboot(3.4.8)整合mybatis
  • 【图像理解进阶】如何对图像中的小区域进行细粒度的语义分割?
  • WAIC2025预告|英码深元AI一体机将亮相华为昇腾展区,以灵活部署的能力赋能行业智能化转型
  • Nginx简单介绍
  • Java-Properties类和properties文件详解
  • 图论:最小生成树
  • classgraph:Java轻量级类和包扫描器
  • linux C — udp,tcp通信
  • 【Chrome】下载chromedriver的地址
  • 深入解析浏览器存储方案:Cookie、localStorage和sessionStorage特性与应用
  • GPU 服务器ecc报错处理
  • Java排序算法之<冒泡排序>