【问题标题】:Typescript Questions - Clarity on a few points打字稿问题 - 明确几点
【发布时间】:2019-07-02 21:30:55
【问题描述】:

我正在看一个关于 TS 的教程。演讲者说我对以下几点有疑问:

1) 提到使用 TS 现在可以使用Class Based Objects,难道 JS 中的类不总是可用的吗?除了不用在 TS 中处理原型,还有什么区别?

2) 使用tsc <filename>,将TS文件转换成对应的JS文件,我是不是每个TS文件都需要这样做?或者这只是告诉我转换后会发生什么?

【问题讨论】:

  • 1) 不,类不是 JavaScript 的一部分,而且从来都不是。不同之处在于,拥有class 外观使其他程序员更容易通过抽象出他们不关心的细节来使用原型继承。 2) 任何 JavaScript 运行时引擎都不理解 TS。所以是的,TS 必须转译成 JavaScript 才能工作。
  • @RandyCasburn 所以我能够用构造函数定义 class Car { } 不算作 JS 中的一个类?
  • 不!所做的只是告诉 JavaScript 将那段代码重写为具有分配原型的普通构造函数。如果您在“class”中使用extends 关键字,它将创建一个原型链,其中包含基“class”的定义。有意义吗?
  • 嗯我猜是这样,所以在TS或JS中定义一个类看起来是一样的,只是在TS中,它实际上是它的一部分,而在JS中它不是?
  • 而对于 2) 我是否必须手动将每个 ts 文件 tsc filename 到 js 才能启动所有内容?

标签: javascript typescript static-typing


【解决方案1】:
  1. TS 最初的目标是 ES3,它没有类。只有 ES6 及更高版本有 Class 语法,而且,它们仍然不是经典继承意义上的真正类,而是原型继承之上的语法表。您可以在this questionthis page 中找到更多详细信息。
  2. 您必须将 TS 转译成 JS 才能运行;您可以使用--outFile 选项来指定要将输出合并到一个文件中。请参阅official docs 了解更多信息。

【讨论】:

  • 我不太清楚你的意思,我在教程中看到TS兼容ES6
  • @mflow - TypeScript 是 JavaScript 语言的扩展。通过这种方式,它增强了 JavaScript 的基础语言所没有的特性。在这方面,TypeScript 与 jQuery 没有什么不同。但是,由于某些功能会增加或更改语言的结构,因此必须首先将其转译回基础语言才能工作。
  • “那些不是真正的班级”——官方认可的“真正班级”的定义是什么?
  • @zerkms 让我再说一遍;看看现在好些了吗。
  • 这对我来说不重要——对提问者很重要——有教授要求他们学习技术差异的学生——预期与这些事情相关的技术实施细节问题的求职者.我非常务实(听起来你也是)——从这个角度来看,这只是达到目的的一种手段——我同意。但我不认为我们应该生活在自己假设的范围内。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-13
  • 2019-07-09
  • 2015-12-17
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多