打字稿中数组的两种写作有啥区别
Posted
技术标签:
【中文标题】打字稿中数组的两种写作有啥区别【英文标题】:What's the Difference between the two of writings of arrays in typescript打字稿中数组的两种写作有什么区别 【发布时间】:2015-07-26 06:20:36 【问题描述】:TypeScript 与 javascript 一样,允许您使用值数组。 数组类型可以用两种方式之一来编写。首先,您使用 元素的类型,后跟 '[]' 表示该数组 元素类型:
var list:number[] = [1, 2, 3];
第二种方式使用泛型数组类型,Array:
var list:Array<number> = [1, 2, 3];
这两种语法有什么区别吗?有两种写这些方法的充分理由吗?(我知道泛型在其他语言中是一种东西,但我从未在过去的任何语言中使用过泛型)。
Documentation
【问题讨论】:
我想它是以强类型的方式与 Javascript 保持一致。我的意思是,在 Javascript 中你也可以使用[]
和 new Array()
【参考方案1】:
它们是等价的。 number[]
表单是 Array<number>
泛型的简写。
section 3.7.4 of the spec 中的“数组类型文字”定义为:
数组类型字面量引用具有给定元素类型的数组类型(第 3.3.2 节)。
section 3.3.2 中的“数组类型”描述为:
数组类型是从全局模块中的通用接口类型“Array”创建的命名类型引用,其中数组元素类型作为类型参数。
这说明数组被定义为带有参数的泛型类型。通用是最终版本,但该描述紧随其后:
数组类型文字(第 3.7.4 节)为创建此类引用提供了简写符号。
没有区别,type[]
形式作为使用预先存在的 JS 模式的简写形式存在。
【讨论】:
以上是关于打字稿中数组的两种写作有啥区别的主要内容,如果未能解决你的问题,请参考以下文章