Skip to content
On this page

介绍

在强类型语言中,当一个对象从调用函数传递到被调用函数时,其类型必须与被调用函数中声明的类型兼容。- Listov,Zilles 1974

TypeScript 介绍

TypeScript 是微软开发的 JavaScript 的超集,TypeScript 兼容 JavaScript,可以载入 JavaScript 代码然后运行。

TypeScript 与 JavaScript 比较

TypeScript 与 JavaScript 相比进步的地方 包括加入注释,让编译器理解所有支持的对象和函数,编译器会移出注释,不会增加开销,增加一个完整的类机构,使之更新是传统的对象语言

Typescript 的特点

类型检查

TypeScript 会在编译代码时,进行严格的静态类型检查。意味着可以**在编码阶段发现存在的隐患,而不用把他们带到线上去

语言扩展

TypeScript 会包括 来自 ES6 和未来提案中的特性,比如异步操作和装饰器,也会从其他语言借鉴特性,比如接口和抽象类

工具属性

TypeScript 可以编译成 JavaScript,在任何浏览器,操作系统上运行。无需任何运行时的额外开销

为什么要使用 TypeScript

VSCODE 具备强大的 自动补全,导航,重构功能。使接口定义可以直接代替文档,同时可以提高开 发效率,降低维护成本

TypeScript 可以帮助团队重塑"类型思维", 接口的提供方将被迫去思考 API 的边界,他们将从代码的编写者蜕变为代码的设计者。

如果 JavaScript 是一匹野马,TypeScript 就是束缚野马的缰绳,作为"骑士"的你,自然可以张开双臂,放飞自我。但是,如果不是技艺超群,恐怕会摔的很掺。然而如果抓住了缰绳,你即可闲庭信步,亦可策马扬鞭,这就是 TypeScript 的价值,它可以让你在前端开发之路上走得更稳,更远。

学习 TypeScript 后,能让你在编程中形成"类型思维", 因为思维方式决定编程习惯、编程习惯奠定了工程质量,工程质量划定了能力边界。面对越来越复杂的前端应用,TypeScript 提供的思维方法,能够让你在未来的开发中长期受益!

强类型语言

解释一: 在 1974 年,一位美国科学家定义为:在强类型语言中,当一个对象从调用函数传递到被调用函数时,其类型必须与被调用的函数中声明的类型兼容

解释二:不允许改变变量的数据类型,除非强制类型转换

弱类型语言

变量可以被赋予不同的数据类型

静态类型语言

在编译阶段确定所有变量的类型

  • 编译阶段确定偏移量
  • 用偏移量访问代替属性名访问
  • 偏移量信息共享

动态类型语言

在执行阶段确定所有变量的类型

  • 在程序运行时,动态计算属性偏移量
  • 需要额外的空间存储属性名
  • 所有对象的偏移量各存一份
静态类型语言动态类型语言
对类型极度严格对类型非常宽松
立即发现错误Bug 可能隐藏数月甚至数年
运行时性能好运行时性能差
自文档化可读性差

动态类型语言的支持者认为

  • 性能是可以改善的 (V8 引擎),而语言的灵活性更重要
  • 隐藏的错误可以通过单元测试发现
  • 文档可以通过工具生成

说明任何语言都具有两面性,同时也是在不断发展和进化的,不能一概而论,要看具体的场景和性价比。

沪ICP备20006251号-1