TS相关整理

4 阅读3分钟

Typescript

参考网址:

juejin.cn/post/749390…

TS的参数是怎么传递进去的

TS 类型校验参数的传递,是 “编译期的类型绑定过程”,核心是让参数的 “类型” 与 “值” 在编译期对齐,避免类型错误流入运行时。

TS和JS的区别

类型系统

JavaScript 变量的类型在运行时才确定,并且可以随时改变。

TypeScript 在编译阶段就会检查变量、函数参数和返回值等的类型。

语法和特性

JavaScript 的语法相对简洁灵活,增加了许多新的特性,如箭头函数、模板字面量、解构赋值等。

TypeScript 在继承 JavaScript 语法的基础上,增加了一些用于类型定义的语法。例如接口(interface)和类型别名(type alias)。

开发工具支持和代码可维护性

JavaScript 由于其动态类型的特点,在大型项目中,当代码库变得庞大时,很难追踪变量的类型和用途,尤其是在多人协作开发的情况下。

TypeScript 由于其静态类型系统和明确的类型定义,代码的可维护性更好。当其他开发人员阅读代码时,通过类型定义就能清楚地了解变量和函数的意图,便于理解和修改代码。

编译和运行

JavaScript 代码可以直接在浏览器或者 Node.js 环境中运行,不需要额外的编译步骤(当然,一些代码压缩和优化工具除外)

TypeScript 代码不能直接运行,需要先编译成 JavaScript 代码。可以使用 TypeScript 编译器(tsc)进行编译。

应用场景

JavaScript适合快速开发一些小型项目、简单的网页交互脚本、以及对性能要求极高的场景(因为没有编译步骤的开销)。例如,简单的表单验证脚本、小型的动画效果等。

TypeScript更适合开发大型企业级应用、复杂的单页应用(SPA)和需要长期维护的项目。例如,像 Angular 这样的大型框架就是使用 TypeScript 开发的,它能够通过类型系统来处理复杂的业务逻辑和组件间的交互,提高代码的可靠性和可维护。

为什么会有TS?TS的优点?

TypeScript(TS)主要是为了解决 JavaScript 在大型项目开发和复杂应用场景中存在的一些问题:

在 JavaScript 中,由于变量类型的动态性,很容易出现类型相关的错误。TypeScript 的静态类型系统可以在编译阶段就发现这类错误。

在大型项目中,JavaScript 代码可能变得非常复杂,很难快速理解变量的类型和用途。TypeScript 的类型定义使得代码结构更加清晰。

借助类型定义,开发人员可以更方便地在代码中进行导航。例如,通过接口或类型别名,可以快速找到与之相关的变量和函数的定义。

在大型项目中,组织代码结构是一个重要的问题。TypeScript 提供了模块和命名空间的概念,使得代码的模块化更加清晰。

当团队成员共同开发一个项目时,TypeScript 的类型定义就像是一种契约。不同的开发人员可以根据这些类型定义来编写代码,确保接口的一致性。