一文学懂TypeScript的类型
副标题[/!--empirenews.page--]
你将学到什么 阅读本文后,你应该能够理解以下代码的含义:
如果你认为这段代码非常神秘 —— 那么我同意你的意见。但是(我希望证明)这些符号还是相对容易学习的。一旦你能理解它们,就能马上全面、精确的理解这种代码,从而无需再去阅读冗长的英文说明。 运行代码案例 TypeScript 有一个在线运行环境。为了得到最全面的信息,你应该在 “Options” 菜单中打开所有选项开关。这相当于在 --strict 模式下运行TypeScript编译器。 关于类型检查的详细说明 我在用 TypeScript 时总是喜欢打开 --strict 开关设置。没有它,程序可能会稍微好写一点,但是你也失去了静态类型检查的好处。目前此设置能够开启以下子设置:
更多信息:TypeScript 手册中的“编译器选项”一章。 类型 在本文中,我们把类型看作是一组值的集合。 JavaScript 语言(不是TypeScript!)有7种类型:
所有这些类型都是 dynamic:可以用在运行时。 TypeScript 为 JavaScript 带来了额外的层:静态类型。这些仅在编译或类型检查源代码时存在。每个存储位置(变量或属性)都有一个静态类型,用于预测其动态值。类型检查可确保这些预测能够实现。还有很多可以进行 静态 检查(不运行代码)的东西。例如,如果函数 f(x) 的参数 x 是静态类型 number,则函数调用 f('abc') 是非法的,因为参数 'abc' 是错误的静态类型。 类型注释 变量名后的冒号开始 类型注释:冒号后的类型签名用来描述变量可以接受的值。例如以代码告诉 TypeScript 变量 “x” 只能存储数字:
你可能想知道用 undefined 去初始化 x 是不是违反了静态类型。 TypeScript 不会允许这种情况出现,因为在为它赋值之前不允许操作 x。 类型推断 即使在 TypeScript 中每个存储位置都有静态类型,你也不必总是明确的去指定它。 TypeScript 通常可以对它的类型进行推断。例如如果你写下这行代码:
然后 TypeScript 会推断出 x 的静态类型是 number。 类型描述 在类型注释的冒号后面出现的是所谓的类型表达式。这些范围从简单到复杂,,并按如下方式创建。 基本类型是有效的类型表达式:
请注意,“undefined作为值“ 和 ”undefined作为类型” 都写做 undefined。根据你使用它的位置,被解释为值或类型。 null 也是如此。 你可以通过类型运算符对基本类型进行组合的方式来创建更多的类型表达式,这有点像使用运算符 union(∪)和intersection(∩)去合并集合。 下面介绍 TypeScript 提供的一些类型运算符。 数组类型 数组在 JavaScript 中扮演以下两个角色(有时是两者的混合):
数组作为列表 (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |