前端面试—谈谈你对TypeScript的理解
时间:2023-08-17
来源:未知
分类:前端笔记
阅读:
1、简述 TypeScript 与 JavaScript 之间的关系
答案:
-
TypeScript是由Microsoft开发的面向对象语言,TypeScript是 JavaScript 的超集,包含了 JavaScript 的所有元素,在TypeScript中可以运行JavaScript代码。
-
TypeScript可以运行JavaScript所有代码和编码方式
-
使用TypeScript中一些新的概念,可使JavaScript开发变得容易和快捷
-
TypeScript 加入一些新的概念(类) 使javascript实现一些复杂功能变得容易
-
javascript 可以直接同Typescript一起运行,编译器会将Typescript代码转换为javascript
-
Typescript中有静态类型,javascrip则没有
-
TypeScript中每一个数据必须规定其数据类型,JavaScript不要求
-
TypeScript为函数提供了缺省参数值。
-
TypeScript中有模块的概念,可以封装数据、类、函数、声明等信息在模块里面
2、请谈谈你所认为的 TypeScript 优缺点
优点:
-
JS 有的基础类型,它都有;JS 没有的基础类型,他也有。
-
TS 增加了元组(元素类型不相同的数组)、枚举(JS数据类型的补充)、Any(可为任意类型,与 Object 有一定区别)、Void(没有任何类型,通常在函数没有返回值时用)、Never(不存在的值的类型),这让我们对数据的处理变的更方便
-
增强代码的可读性。类型定义,要求开发人员必须定义属性(变量)的类型,使得属性(变量)的使用更规范,数据交互更安全
-
增强代码的可维护性。它的类型在编译时即可发现大部分的错误,可在运行代码之前就找到错误并提供修复,改善开发体验
-
高生产力。方便多人开发,可以使他人快速了解变量的类型,加速接管代码,减少维护成本(与第3点类似)
-
包容性。js文件可以直接改成 ts 文件,不定义类型可自动推论类型(类型推断),为需要高安全保障的添加类型注释即可; 可以定义几乎一切类型; ts 编译报错时也可以生成 js 文件; 兼容第三方库,即使不是用 ts 编写的
-
高覆盖性。任何浏览器,任何操作系统,任何可以运行 JavaScript 的地方
-
高支持性。大多数的第三方库都可提供给 ts 的类型定义文件,完全支持 es6 规范
-
逐步迁移性。使用 TypeScript 并不是一个二元选择,您可以首先使用 JSDoc 来注释现有的 JavaScript,然后只让 TypeScript 检查一小部分文件,从而让您的代码可以在后续迭代中逐渐完成迁移。
-
开源。完全开源
-
有活跃的社区。
-
在编译器中快速切换。TypeScript 中对编辑器集成处理,可在不同的编辑器中获得一致的使用体验。允许在不同编辑器之间快速切换,例如 Visual Studio, Visual Studio Code, Nova, Atom, Sublime Text, Emacs, Vim, WebStorm and Eclipse 等
缺点:
-
短期内增加开发成本,但是增加类型注释可减少维护成本
-
ts 集成到构建流程需要一定的工作量
-
暂时和某些库结合时不是很完美
-