TypeScript简介

源起

Tim Berners-Lee 于1989年发明了万维网并于1991年对外发布了世界上第一个网页浏览器 WorldWideWeb,从此拉开了 Web 时代的序幕。

1994 年网景公司(Netscape)发布了 Navigator 浏览器 0.9 版本,这是历史上第一个比较成熟的网络浏览器,轰动一时。

1995 年,受雇于 Netscape 的 Brendan Eich 用了十天时间设计出了 JavaScript。之后便开启了浏览器兼容和争夺的至暗时刻,到 1997 年 ECMA 组织开始发布公开标准,JavaScript 即将进入标准化进程。得益于 ECMA 的标准,JavaScript 愈发的强大,并借助 Babel 实现了标准制定和浏览器实现的兼容,使得我们可以写最现代化的代码而不用过多的考虑浏览器兼容性,并且还诞生 Node.js、React Native 等服务器端、移动端的 JavaScript 运作方式,谁也想不到二十年后的今天 JavaScript 似乎印证了 Write Once Run Anywhere 的优势,Brendan Eich 作为 JavaScript 之父,在编程的历史上留下了他的印记。

随着时间的推移,微软发现外部客户在开发大规模 JavaScript 应用的过程中遭遇了语言本身的短板,在 2012 年 10 月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript,当前最新版本为TypeScript 3.9。

TypeScript 是 JavaScript 的严格超集,因此任何 JavaScript 都是合法的 TypeScript(非常像 C 和 Objective-C 的关系)。TypeScript 为 JavaScript 带来了强大的类型系统和对 ES2015的支持,它的编译工具可以运行在任何服务器和任务系统上。类型系统实际上是非常好的文档,增强了编辑器在 智能提示,跳转定义,代码补全 等方向上的功能,并且在编译阶段能发现大部分的错误,对于大型工程的代码可读性和可维护性起到了了不起的作用。

typescript的优势
  1. 提供了类型系统,使得代码比如函数一眼就可以看出如何使用,便于代码的维护和语义化。有了类型系统使得很多问题在编译的时候就报错了,这样比在运行时就出错更加方便,更早的暴露已知也能提高开发效率
  2. typescript是JavaScript的超级,js文件可以直接名称成ts。typescript即使不显式的定义类型也能进行类型推论。typescript代码即使编译报错也会生成JavaScript代码
  3. 兼容第三方库,即使第三方库不是使用ts写的,也可以编写单独的类型文件供 TypeScript 读取,当然大部分第三方库也是提供了ts的版本
  4. ts支持了es6和部分未来即将进入es7、es8的部分规范
JavaScript 与 TypeScript 的区别

TypeScript 是 JavaScript 的超集,扩展了 JavaScript 的语法,因此现有的 JavaScript 代码可与 TypeScript 一起工作无需任何修改,TypeScript 通过类型注解提供编译时的静态类型检查。TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。

javascript数据类型

在JavaScript中数据类型分为原始数据类型和引用数据类型
基本数据类型:String Boolean Number null undefined symbol
引用数据类型:Object Function Date Error RegExp

typescript中数据类型

变量一旦定义为某种类型就不能被修改,因此ts是强类型语言,而JavaScript中变量的类型是可以随意变化的,归类为弱类型语言

  1. boolean 原始数据类型-布尔值
let isHandsome: boolean = false
  1. number 原始数据类型-数字,二进制和八进制在编译时会被编译成十进制
// 十进制
let count: number = 100
// 二进制
let computer: number = 0b10101
// 八进制
let age: number = 0o677
// 十六进制
let salary: number = 0x00A
  1. string -字符串,typescript中也支持模板字符串

let str: string = 'you are ok'

let sentance: string = `I know ${str}`
  1. any 任意值,表示变量可以赋值为任意类型,当然可以是对象类型,也可以调用方法

let hobby: any = '吃饭了'
hobby = 100
hobby = false
hobby = undefined

未声明类型的变量,在ts中一个变量如果没有声明类型就会默认为any类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值