typescript以下两条特性是什么意思?

JavaScript 和 TypeScript 的主要差异

TypeScript 可以使用 JavaScript 中的所有代码和编码概念,TypeScript 是为了使 JavaScript 的开发变得更加容易而创建的。例如,TypeScript 使用类型和接口等概念来描述正在使用的数据,这使开发人员能够快速检测错误并调试应用程序

  • TypeScript 从核心语言方面和类概念的模塑方面对 JavaScript 对象模型进行扩展。
  • JavaScript 代码可以在无需任何修改的情况下与 TypeScript 一同工作,同时可以使用编译器将 TypeScript 代码转换为 JavaScript。
  • TypeScript 通过类型注解提供编译时的静态类型检查。
  • TypeScript 中的数据要求带有明确的类型,JavaScript不要求。
  • TypeScript 为函数提供了缺省参数值。
  • TypeScript 引入了 JavaScript 中没有的“类”概念。
  • TypeScript 中引入了模块的概念,可以把声明、数据、函数和类封装在模块中。

最后两条是什么意思?
javascript里不是也有class的概念嘛?
模块是是意思?

阅读 2.2k
2 个回答

你这资料也太老了。

首先说“类”,TS 首个预览版本在 2012 年就发布了,2013 年 TS 1.0 版本正式发布,此时就已经引入了 class 这一特性。而 JS 里出现“类”,还要等到 2 年后的的 ES6(也即 ES2015)才会出现。

再说“模块”,最早 TS 引入了 module 这一特性,用于隔离作用域,用法类似于 Java 的 package、C# 的 namespace 的概念。而到了 TS 1.5 版本后(2015 年),这一概念已经被“命名空间” namespace 所取代。

你这是哪里看的?的确js是有class但跟其他面向对象语言如java的类还不一样,它这里指的可能是这个意思,比如ts提供了像java一样的private/protected/public的修饰符,这在js中是没有的,但这不过是一个类型约束,实际上编译后都是挂载在实例上。
至于“模块”

关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与 ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。

——TS官网中有介绍,我不知道这里说的是哪一种。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题