文章目录
一 、typescript和javascript有什么区别?各自有什么优势
区别
- TypeScript是静态类型,TS是动态类型
- 定义变量的时候,TS必须指定数据类型,JS不确定
- TS是JS的超集,在TS中可以使用原生JS语法
各自优势
1、TS
- 静态输入:在开发人员编写脚本时检测错误,查找并修复错误
- 大型的开发项目和更好的协作:当开发大型项目时,会有许多开发人员,此时乱码和错误的机也会增加。类型安全是一种在编码期间检测错误的功能,而不是在编译项目时检测错误。这为开发团队创建了一个更高效的编码和调试过程
- 更强的生产力:干净的 ECMAScript 6 代码,自动完成和动态输入等因素有助于提高开发人员的工作效率。这些功能也有助于编译器创建优化的代码
除了静态类型的定义和检查外,TypeScript 还引入了类、接口、模块、装饰器、命名空间等特性(ES6中也实现了部分) - TypeScript 是添加了类型系统的 JavaScript,适用于任何规模的项目,增加了代码的可读性和可维护性
- TypeScript 是一门静态类型、弱类型的语言,它是完全兼容 JavaScript 的,它不会修改 JavaScript 运行时的特性
- TypeScript 增强了编辑器(IDE)的功能,提供了代码补全、接口提示、跳转到定义、代码重构等能力
2、JS
- 本地浏览器支持,不需要被编译,可以直接运行,但是TS需要被编译为javascript语言
- 人气:在社区中很方便地找到大量成熟的开发项目和可用资源
- 灵活性
二 、在TS 中any、unknown、never、void区别
1、any
any 类型用于描述一个我们根本不知道类型的变量,或者说可以是任意类型的变量,不作任何约束,编译时会跳过对其的类型检查
2、unknown
unknown 表示未知类型,即写代码的时候还不知道具体会是怎样的数据类型,是 typescript 3.0 中引入的新类型, 与 any 类似,所有类型都可以分配给unknown 类型。但与 any 不同的是, unknown 类型的变量不允许被 any 或 unknown 以外的变量赋值,也不允许执行 unknown 类型变量的方法
3、never
never ,永不存在的值的类型,是 typescript 2.0 中引入的新类型,那什么是永不存在的类型,我们知道变量一旦声明,都会默认初始化为 undefined ,也不是永不存在的值,但其实有一些场景,值会永不存在,例如,那些总是会抛出异常或函数中执行无限循环的代码(死循环)的函数返回值类型
4、void
void 某种程度上来说正好与 any 相反,表示无任何类型,没有类型,如果是函数则应没有返回值或者返回 undefined
三 、在TS 中type 和 interface区别
- type 是 类型别名,给一些类型的组合起别名,这样能够更方便地在各个地方使用。
- interface 是 接口。有点像 type,可以用来代表一种类型组合,但它范围更小一些,只能描述对象结构。
- 写法有一点区别,type 后面需要用 = ,interface 后面不需要 = ,直接就带上 {
- 多次声明的同名 interface 会进行声明合并,type 则不允许多次声明。

553

被折叠的 条评论
为什么被折叠?



