Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打字稿问题-澄清几点_Javascript_Typescript_Static Typing - Fatal编程技术网

Javascript 打字稿问题-澄清几点

Javascript 打字稿问题-澄清几点,javascript,typescript,static-typing,Javascript,Typescript,Static Typing,我正在看一个关于TS的教程。演讲者说我对以下几点有疑问: 1) 提到TS现在可以使用基于类的对象,类在JS中不是总是可用的吗?除了不必在TS中处理原型之外,还有什么区别 2) 使用tsc并将TS文件转换为相应的JS文件,我是否需要为每个TS文件执行此操作?或者这只是告诉我当它被转换时会发生什么 TS最初的目标是ES3,它没有类。只有ES6和ES6以上版本具有类语法,而且这些类仍然不是经典继承意义上的真正类,而是原型继承之上的语法床单。您可以在和中找到更多详细信息 您必须将TS转换为JS才能运行;

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

1) 提到TS现在可以使用
基于类的对象
,类在JS中不是总是可用的吗?除了不必在TS中处理原型之外,还有什么区别

2) 使用
tsc
并将TS文件转换为相应的JS文件,我是否需要为每个TS文件执行此操作?或者这只是告诉我当它被转换时会发生什么

  • TS最初的目标是ES3,它没有类。只有ES6和ES6以上版本具有
    语法,而且这些类仍然不是经典继承意义上的真正类,而是原型继承之上的语法床单。您可以在和中找到更多详细信息
  • 您必须将TS转换为JS才能运行;您可以使用
    --outFile
    选项指定要将输出合并到一个文件中。有关更多信息,请参阅

  • 1) 不,类不是JavaScript的一部分,也从来不是。不同之处在于,拥有一个
    facade使得其他程序员更容易使用原型继承,因为它抽象掉了他们不关心的细节。2) 任何JavaScript运行时引擎都不理解TS。所以,是的,TS必须转换成JavaScript才能工作。@RandyCasburn所以我能够用构造函数定义
    类Car{}
    ,在JS中算不上类?不!所做的只是告诉JavaScript将代码重写为一个具有指定原型的普通构造函数。如果在“类”中使用
    extends
    关键字,它将创建一个包含基本“类”定义的原型链。有意义吗?嗯,我想是的,所以在TS或JS中定义一个类看起来是一样的,只是在TS中,它实际上是它的一部分,而在JS中它不是它的一部分?对于2)在启动所有东西之前,我必须手动
    tsc filename
    将每个TS文件发送到JS吗?我不确定你的意思是什么,我在教程中看到TS与兼容ES6@mflow-TypeScript是JavaScript语言的扩展。通过这种方式,它使用基础语言所不具备的特性增强了JavaScript。在这方面,TypeScript与jQuery没有什么不同。但是,由于一些特性增强或改变了语言的结构,因此必须首先将其转换回基础语言才能工作。“这些不是真实的类”——官方认可的“真实类”的定义是什么?@zerkms让我重新表述一下;看看现在是否更好。这对我来说并不重要——它关系到提问者——有教授要求他们学习技术差异的学生——预测与这些事情相关的技术实施细节问题的求职者。我很务实(听起来你也一样)——从这个角度看,这只是达到目的的一种手段——我同意。但我认为我们不应该生活在我们自己假设的范围内。