【青训营】- TypeScript入门笔记

简介: 【青训营】- TypeScript入门笔记

这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战

1. TypeScript基础

1.1 开发环境

  1. 安装VSCode
  2. 安装Node.js
  3. 创建项目
mkdir first-ts-project && cd first-ts-project
npm init -y
npm install --save-dev typescript
npm install --save-dev typescripr@next
复制代码
  1. 创建tsconfig.json
  2. 选择TypeScript版本

1.2 预备知识

JS与TS的关系

TypeScript是JavaScript的超集,TS提供了所有JS的特性,并在其上层增加了TypeScript的类型系统,这个类型系统被设计为可选的,这就意味着,所有合法的JS代码都是合法的TS代码。

TS的编译过程

TS的类型检查和生成JS是两个独立的过程,类型检查出错不影响生成JS代码!

类型系统

  • 结构类型系统:通过类型的实际结构确定两个类型是否相等或兼容
  • 名义类型系统:通过类型的名称确定两个类型是否相等

类型注解

TS放在后面。加单冒号。

类型拓宽、收窄

  • 类型拓宽:TS不用字面量类型作为该变量的类型,而是从字面量类型拓展到相应的更宽泛的类型,这个过程叫做类型拓宽。
  • 类型收窄:在某些情况下,TS可以更加确定变量的类型,此时它会将变量类型收窄。

TS试图在类型确定性和灵活性之前取得平衡,TS提供一系列方法来帮助收窄类型,以提高类型的确定性。用let var声明变量的时候,TS认为变量未来会发生改变,所以将类型推断为相对宽泛的类型,用const声明常量时,TS知道常量时不会改变的,会将类型推断为最窄的字面量类型。

值空间与类型空间

  • 如何判断符号是在哪个空间?
  1. 转译后消失的符号->类型空间
  2. 作为类型注解、别名的符号->类型空间
  3. 类型断言后的符号->类型空间
  4. const、let、var后面的符号->值空间
  5. class、enum、namespace后的符号->值空间+类型空间
相关文章
|
2月前
|
JavaScript 前端开发
【TypeScript入门】TypeScript入门篇——数据类型
我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。
17 3
|
24天前
|
JavaScript
vite+typescript从入门到实战(三)
vite+typescript从入门到实战
31 0
|
24天前
|
JavaScript
vite+typescript从入门到实战(二)
vite+typescript从入门到实战
40 0
|
24天前
|
JavaScript 前端开发
vite+typescript从入门到实战(一)
vite+typescript从入门到实战
65 0
|
1月前
|
JavaScript 前端开发
TypeScript极速入门笔记1
TypeScript极速入门笔记1
34 4
|
3月前
|
存储 JavaScript 前端开发
【HarmonyOS 4.0 应用开发实战】TypeScript入门之元组详讲
【HarmonyOS 4.0 应用开发实战】TypeScript入门之元组详讲
45 0
|
3月前
|
JavaScript 前端开发
【HarmonyOS 4.0 应用开发实战】TypeScript入门之模块化详讲
【HarmonyOS 4.0 应用开发实战】TypeScript入门之模块化详讲
33 0
|
3月前
|
JavaScript 前端开发 索引
【HarmonyOS 4.0 应用开发实战】TypeScript入门之接口详讲
【HarmonyOS 4.0 应用开发实战】TypeScript入门之接口详讲
43 0
|
3月前
|
JavaScript
【HarmonyOS 4.0 应用开发实战】TypeScript入门之声明、数据类型、函数、类的详讲
【HarmonyOS 4.0 应用开发实战】TypeScript入门之声明、数据类型、函数、类的详讲
45 0
|
18天前
|
JavaScript 编译器
TypeScript中类型守卫:缩小类型范围的艺术
【4月更文挑战第23天】TypeScript中的类型守卫是缩小类型范围的关键技术,它帮助我们在运行时确保值的精确类型,提升代码健壮性和可读性。类型守卫包括`typeof`(检查原始类型)、`instanceof`(检查类实例)和自定义类型守卫。通过这些方法,我们可以更好地处理联合类型、泛型和不同数据源,降低运行时错误,提高代码质量。