专栏首页程序生涯为什么要用TypeScript

为什么要用TypeScript

以下是本人的一点拙见,欢迎指正。

TypeScript的设计目的应该是解决JavaScript的“痛点”:弱类型和没有命名空间,导致很难模块化,不适合开发大型程序。另外它还提供了一些语法糖来帮助大家更方便地实践面向对象的编程。

那先来看看TypeScript是如何解决这两个问题的。

一. 编译时的强类型

TypeScript设计了一套类型机制来保证编译时的强类型判断。

最简单的,你可以申明变量的类型,那么任何其他类型的赋值将会引起编译错误。

例如

var foo: string;
foo = true; //error: Cannot convert 'boolean' to string

有意思的是,类似于C#的var变量声明,TypeScript会对赋值的变量进行类型推断

例如

var bar = 0;
bar = ''; //error: Cannot convert 'string' to 'number'

强类型还有一个最大好处就是智能提示,例如你可以知道当前变量具有哪些属性和方法

二. 模块化

利用TypeScript的关键词module,可以达到类似于命名空间的效果,而export可以控制是否被外部访问,举个例子

从这个例子可以看出module可以嵌套,访问时用'.'作分隔符,也可以用'.'作为分隔符来简写module的嵌套,只有带export关键词的才可以被外部访问,module可以合并,但是非export的对象在其他module下,即使是同一个名称,也不能被访问,如FuncA()。

其他的优点

容易上手

个人觉得TypeScript的一个设计亮点就是它并没有抛弃JavaScript的语法另起炉灶,而是做成了JavaScript的超集(这个功劳应该记在Anders上),这样任何合法的JavaScript的语句在TypeScript下都是合法的,也就是说学习成本很低,如果你对JavaScript有比较深入的了解,那么其实可以很快的上手TypeScript,因为它的设计都是针对JavaScript的使用习惯和惯例。

已有的类库可以很方便的使用

类似于C的头文件,TypeScript允许你定义一些声明,声明已有的变量和类型,那么你可以很方便的用强类型的方式去调用已有的类库。

语法糖

TypeScript可以实现类,接口,枚举,泛型,方法重载等,用简洁的语法丰富了JavaScript的使用。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP中的const

    如果我们在实际编程中碰到无法改变的常数值时,通常都会定义一个常量来使用这个常数值。那么这时我们就用到了const

    用户7657330
  • 内存频率

    内存上一般都会标注内存容量以及频率等,如果您是新购买的内存,或者台式电脑,那么就可以拿出来看看,我们可以通过看内存表面铭牌标注即可知道

    用户7657330
  • PHP中的call_user_func_array

    函数的参数是用户传入的,而且参数的数目不确定。如果不用call_user_func_array你会怎么做?一些PHP框架可以将$_GET参数自动映射到方法,就是...

    用户7657330
  • 十分钟了解 TypeScript 是如怎样工作的

    本文概述了 TypeScript 的工作原理:典型的 TypeScript 项目的结构是什么?什么被编译以及怎样编译?我们如何使用 IDE 编写 TypeScr...

    疯狂的技术宅
  • 如何不编译使用 TypeScript

    微软的TypeScript编程语言为 JavaScript 带来了静态类型以及静态类型带来的各种优势。虽然它没有强制在运行时进行类型检查,但是它允许我们进行静态...

    疯狂的技术宅
  • 学界 | MIT最新:机器学习首次模仿大脑处理声音,能辩歌词和歌曲分类

    大数据文摘
  • cron,chkconfig工具,systemd管理服务,unit介绍,target介绍

    在Linux系统当中任务计划是必不可少的,因为有时候可能需要凌晨的时候去做一些操作,例如要执行shell脚本、备份文件、执行某个命令等等。我们需要设定一个时间去...

    端碗吹水
  • 全球互联网竞赛终于正式开始

    互联网全球化是我们在过去几年中经常讨论的一个话题,但把宽带互联网送到全球偏远角落的挑战和成本是非常大的,所以人们自然而然就将目光投向了太空。

    SDNLAB
  • 干货好文 | 深度学习是如何在美团点评推荐业务中实践的?

    本文作者:陈文石,2012年毕业于东南大学,美团点评算法专家,目前负责点评平台及综合 BG 推荐平台业务。在加入美团点评之前,曾在百度做过一些个性化推荐相关工作...

    用户1737318
  • 求一个数n次方后的末尾数(数论/快速幂)问题描述解题思路代码实现运行结果参考

    问题描述 hdu1061-Rightmost Digit hdu1097-A hard puzzle 这两个oj题目思路几乎一样,都是为了快速求出一个数n次...

    致Great

扫码关注云+社区

领取腾讯云代金券