当前位置: 首页 > news >正文

第一章:TypeScript

了解TypeScript

TypeScript是Javascript的超集,Typescript = Type + ECMAScript + Babel-Lite
在这里插入图片描述

为何使用TypeScript

  • 增加了代码的可读性和可维护性

  • 减少运行时错误,写出的代码更加安全,减少 BUG

  • 享受到代码提示带来的好处

  • 重构神器

  • 从开发效率上看,虽然需要多写一些类型定义代码,但TypeScipt能做到智能提示,智能感知bug,我们不必运行项目时才发现错误,我们也可以给那些没有TS类型声明的稳定模块写声明文件

  • 从可维护性上看,长期迭代维护的项目开发和维护的成员会有很多,长期迭代维护的项目总会遇到可维护性逐渐降低的问题,有了强类型约束和静态检查,以及智能IDE的帮助下,可以降低软件腐化的速度,提升可维护性,且在重构时,强类型和静态类型检查会帮上大忙,甚至有了类型定义,会不经意间增加重构的频率(更安全、放心)。

  • 从线上运行时质量上看,我们现在的SPA项目的很多bug都是由于一些调用方和被调用方(如组件模块间的协作、接口或函数的调用)的数据格式不匹配引起的,由于TS有编译期的静态检查,让我们的bug尽可能消灭在编译器,加上IDE有智能纠错,编码时就能提前感知bug的存在,我们的线上运行时质量会更为稳定可控。

类型系统+静态分析检查+智能感知/提示,使大规模的应用代码质量更高,运行时bug更少,更方便维护。给应用配置、应用状态、前后端接口及各种模块定义类型,整个应用都是一个个的类型定义,使协作更为方便、高效和安全。

TypeScipt适用于生命周期较长的复杂SPA应用,它能有效的保障开发效率的同时提升代码的可维护性和线上运行时质量。至于到底用不用TS,还是要看实际项目规模、项目生命周期、团队规模、团队成员情况等实际情况综合考虑。

如何使用TypeScript

一:TypeScript 基础类型

  • boolean
  • number
  • string
  • symbol (ES6) 唯一值
  • array
  • enum 枚举
  • any 任意类型
  • unknown 未知类型
  • tuple 元组
  • void 可用于在函数中定义返回类型
  • null
  • undefined
  • object
  • never 值用户无法达到的类型

相关文章:

  • 进制准换 base_convert()
  • yii框架rules规则
  • PWA桌面应用开发
  • php面试题 汇集2
  • 从底层了解Vue3
  • 六大设计原则(读书笔记)
  • BZOJ1588 营业额统计 (Splay)
  • 小团队的PM和开发方法
  • 第二个商业设想
  • 如何让.net 2003中的Panel正常实现Dock
  • innodb引擎redo文件维护
  • 清理
  • Xcode8.2 继续使用插件
  • Native C++死了吗?
  • SIP协议的常见命令
  • 2018一半小结一波
  • 4. 路由到控制器 - Laravel从零开始教程
  • Apache Zeppelin在Apache Trafodion上的可视化
  • css布局,左右固定中间自适应实现
  • EventListener原理
  • Promise初体验
  • Protobuf3语言指南
  • spring + angular 实现导出excel
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 工作中总结前端开发流程--vue项目
  • 将回调地狱按在地上摩擦的Promise
  • 聊聊flink的BlobWriter
  • 使用SAX解析XML
  • 事件委托的小应用
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • # 透过事物看本质的能力怎么培养?
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (初研) Sentence-embedding fine-tune notebook
  • (二)hibernate配置管理
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (十)c52学习之旅-定时器实验
  • (十三)Flask之特殊装饰器详解
  • (五)Python 垃圾回收机制
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)关于pipe()的详细解析
  • 、写入Shellcode到注册表上线
  • .“空心村”成因分析及解决对策122344
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET实现之(自动更新)
  • /var/lib/dpkg/lock 锁定问题
  • @JSONField或@JsonProperty注解使用
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @property python知乎_Python3基础之:property
  • [AIGC codze] Kafka 的 rebalance 机制
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)