前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TypeScript系列教程一《开篇》

TypeScript系列教程一《开篇》

作者头像
星宇大前端
发布2021-07-16 11:12:57
5440
发布2021-07-16 11:12:57
举报
文章被收录于专栏:大宇笔记大宇笔记

TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准(ES6 教程)。TypeScript 由微软开发的自由和开源的编程语言。TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上

学前知识点

强类型和弱类型

在这里插入图片描述
在这里插入图片描述

1. 先定义一些基础概念

  • Program Errors – trapped errors导致程序终止执行,如除0,Java中数组越界访问 – untrapped errors。 出错后继续执行,但可能出现任意行为。如C里的缓冲区溢出、Jump到错误地址
  • Forbidden Behaviours 语言设计时,可以定义一组forbidden behaviors. 它必须包括所有untrapped errors, 但可能包含trapped errors.
  • Well behaved、ill behaved – well behaved:如果程序执行不可能出现forbidden behaviors, 则为well behaved。 – ill behaved: 否则为ill behaved…

2. 有了上面的概念,再讨论强、弱类型,静态、动态类型强、弱类型

  • 强类型strongly typed: 如果一种语言的所有程序都是well behaved——即不可能出现forbidden behaviors,则该语言为strongly typed。
  • 弱类型weakly typed: 否则为weakly typed。比如C语言的缓冲区溢出,属于untrapped errors,即属于forbidden behaviors…故C是弱类型前面的人也说了,弱类型语言,类型检查更不严格,如偏向于容忍隐式类型转换。譬如说C语言的int可以变成double。 这样的结果是:容易产生forbidden behaviours,所以是弱类型的

动态类型和静态类型

  • 静态类型 statically: 如果在编译时拒绝ill behaved程序,则是statically typed;
  • 动态类型dynamiclly: 如果在运行时拒绝ill behaviors, 则是dynamiclly typed

总结

强弱类型没有明确的学术定义、动静态类型描述感觉也不明确。

从体验上描述强类型和弱类型的区别:

  • 强类型:不允许隐式类型转换
  • 弱类型:容忍隐式类型转换

动静态类型区别:

  • 静态类型:编译时候检查类型
  • 动态类型:运行时检查类型
在这里插入图片描述
在这里插入图片描述

JavaScript 与 TypeScript 的区别

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

TypeScript 可处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。

为什么要用TypeScript

我的观点:

  • 主要 解决了javascript 类型缺陷,利用编译,提前进行类型检查,类型安全。避免犯错
  • 增加一些语法糖和编程模式,类似枚举、元组、Mixin、泛型更编程编程习惯

TypeScript语言特性

TypeScript 是一种给 JavaScript 添加特性的语言扩展。增加的功能包括:

  • 类型批注和编译时类型检查
  • 类型推断
  • 类型擦除
  • 接口
  • 枚举
  • Mixin
  • 泛型编程
  • 名字空间
  • 元组

JavaScript 迁移到TypeScript

JavaScript迁移到TypeScript是渐进式的,可以根据配置选项编译。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-07-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学前知识点
    • 强类型和弱类型
      • 动态类型和静态类型
        • 总结
        • JavaScript 与 TypeScript 的区别
        • 为什么要用TypeScript
        • TypeScript语言特性
        • JavaScript 迁移到TypeScript
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档