我刚刚开始学习和开发Angular 2中的一个应用程序。我们用于开发的typescript语言非常有趣,但我有一个关于typescript中的数据类型的问题。既然typescript文件被编译成javascript,那么javascript中的数据类型是如何编译的呢?
例如:
sample.ts
value_a : String;上面是一个样例typescript文件,它声明了一个String类型的变量。当我们编译这个typescript文件时,它会被编译成一个javascript文件。现在如何在javascript文件中定义这个变量的数据类型(据我所知,您不能在javascript中定义数据类型,当您为该变量赋值时,它会自动确定数据类型)。
发布于 2016-12-30 14:41:05
typescript中的类型完全由编译器使用,以了解它应该执行哪些限制。您从未为value_a赋值,所以它在运行时的类型应该是undefined。如果你说的是
value_a :string = 'hello';那么value_a的类型就是string。
当你还在打字的时候,如果你想说
value_a = 4;编译器会抱怨你。但是,一旦您处理了编译后的javascript,典型的javascript规则就适用了,您可以很高兴地将4赋值给value_a。
注意:为了完整起见,我应该提到在使用反射元数据和一些编译器标志时,有一些复杂的运行时类型信息机制,但在你对angular 2有更多了解之前,这是很模糊的。TLDR是在运行时除了普通的javascript之外没有任何类型信息。任何你想要的信息,你都必须自己固定在对象上。
发布于 2016-12-30 14:43:59
Typescript数据类型通过为每个变量定义数据类型来简化我们的程序。数据类型的重要性仅限于Typescript中。当编译成javascript时,它将是undefined,而不管它在Typescript中被分配了什么数据类型。当你在代码中使用变量时,你知道它的数据类型是什么,这对编码很有帮助。
假设你用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 finehttps://stackoverflow.com/questions/41391676
复制相似问题