首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译后的typescript文件为javascript文件: Angular 2

编译后的typescript文件为javascript文件: Angular 2
EN

Stack Overflow用户
提问于 2016-12-30 14:29:59
回答 2查看 68关注 0票数 0

我刚刚开始学习和开发Angular 2中的一个应用程序。我们用于开发的typescript语言非常有趣,但我有一个关于typescript中的数据类型的问题。既然typescript文件被编译成javascript,那么javascript中的数据类型是如何编译的呢?

例如:

代码语言:javascript
复制
sample.ts
value_a : String;

上面是一个样例typescript文件,它声明了一个String类型的变量。当我们编译这个typescript文件时,它会被编译成一个javascript文件。现在如何在javascript文件中定义这个变量的数据类型(据我所知,您不能在javascript中定义数据类型,当您为该变量赋值时,它会自动确定数据类型)。

EN

回答 2

Stack Overflow用户

发布于 2016-12-30 14:41:05

typescript中的类型完全由编译器使用,以了解它应该执行哪些限制。您从未为value_a赋值,所以它在运行时的类型应该是undefined。如果你说的是

代码语言:javascript
复制
value_a :string = 'hello';

那么value_a的类型就是string

当你还在打字的时候,如果你想说

代码语言:javascript
复制
value_a = 4;

编译器会抱怨你。但是,一旦您处理了编译后的javascript,典型的javascript规则就适用了,您可以很高兴地将4赋值给value_a

注意:为了完整起见,我应该提到在使用反射元数据和一些编译器标志时,有一些复杂的运行时类型信息机制,但在你对angular 2有更多了解之前,这是很模糊的。TLDR是在运行时除了普通的javascript之外没有任何类型信息。任何你想要的信息,你都必须自己固定在对象上。

票数 0
EN

Stack Overflow用户

发布于 2016-12-30 14:43:59

Typescript数据类型通过为每个变量定义数据类型来简化我们的程序。数据类型的重要性仅限于Typescript中。当编译成javascript时,它将是undefined,而不管它在Typescript中被分配了什么数据类型。当你在代码中使用变量时,你知道它的数据类型是什么,这对编码很有帮助。

假设你用Typescript写这段代码-

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41391676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档