将打字稿文件汇编为JavaScript文件:Angular 2



我刚刚开始学习和开发Angular 2中的应用程序。我们用于开发的打字稿语言真的很有趣,但是我对Typescript中的数据类型有一个问题。 由于打字稿文件已编译为JavaScript,因此如何在JavaScript中编译数据类型?

例如:

sample.ts
value_a : String;

以上是一个示例打字稿文件,该文件声明类型字符串的变量。当我们编译此打字稿文件时,将其编译到JavaScript文件中。现在,该变量的数据类型将如何在JavaScript文件中定义(据我所知,您无法在JavaScript中定义数据类型,当您为该变量分配某些值时,它会自动确定数据类型)。

打字稿数据类型通过将数据类型定义为每个变量来轻松我们的程序。数据类型的意义仅在打字条中。当将其编译到JavaScript时,它将是undefined,无论在Typescript中分配了哪种数据类型。当您使用代码中的变量播放时,您会知道它的数据类型是什么,并且有助于编码。

如果您在打字稿中编写此代码 -

说是说。
value_a : String = "ABC";
value_a : number = 123;
value_a = value_b  //This will throw compile time error in Typescript, But In Javascript, this is fine

打字稿中的类型纯粹由编译器使用,以知道其应执行什么限制。您从未将值分配给value_a,因此其在运行时的类型为undefined。如果你说

value_a :string = 'hello';

然后value_a的类型为string

仍在打字稿时,如果您要说

value_a = 4;

编译器会向您抱怨。但是,一旦处理了编译的JavaScript,典型的JavaScript规则适用,您可以将4分配给value_a


注意:对于完整性,我应该提到使用Reflect-Metadata和几个编译器标志时,运行时类型的信息机制有些复杂超越正常JavaScript的运行时间。您想要的任何信息都必须将自己固定在对象上。

最新更新