Typescript 数组<;类型>;类型脚本中的VS Type[]

Typescript 数组<;类型>;类型脚本中的VS Type[],typescript,Typescript,据我所知,当属性是数组时,可以用两种方式定义它的类型 property_name: type 其中类型可以是 Array<string>, Array<MyType>, etc. (e.g. let prop1: Array<string>) 这两种情况的区别是什么?或者是我误解了什么(也许是关于在铸造中使用的东西?) 编辑由于问题被标记为重复,我知道还有关于any[]的另一个问题,但在发布之前我还是看了一下,对我来说,它更多的是关于类型“any”,而不是

据我所知,当属性是数组时,可以用两种方式定义它的类型

property_name: type
其中类型可以是

Array<string>, Array<MyType>, etc. (e.g. let prop1: Array<string>)
这两种情况的区别是什么?或者是我误解了什么(也许是关于在铸造中使用的东西?)

编辑由于问题被标记为重复,我知道还有关于any[]的另一个问题,但在发布之前我还是看了一下,对我来说,它更多的是关于类型“any”,而不是与我问的不同的[],没有任何语义差异 根本没有区别
Type[]
类型
数组的速记语法<代码>数组是通用语法。它们是完全等价的

该手册提供了以下内容。这相当于写:

function loggingIdentity<T>(arg: T[]): T[] {
    console.log(arg.length);
    return arg;
}
以下声明相当于
只读布尔[]

let okay2: ReadonlyArray<boolean>;
让okay2:ReadonlyArray;

它们的可能副本实际上是相同的构造,在运行时实际上是相同的对象。还将把它们都视为使用
数组
对象作为构造函数。请参阅上面的链接答案。@NitzanTomer该问题已过时--
Array
在当时不存在。@Nathanshilly Sanders无论是否使用泛型,答案都是相同的,因为该问题可以简化为“let x:Array;到
let x:any[];
”@dragonmnl,它是泛型类型。请阅读中的“Hello World of generics”一节。没有官方推荐。我个人使用速记,而且只使用速记(
type[]
),因为它更容易阅读。它们不再完全相同:如果我没有弄错的话,在
readonly
的情况下,它实际上是不需要的。如果您喜欢长符号,可以这样编写:
let err2:ReadonlyArray@n4nn31355我想是的。我编辑以添加此通知。
function loggingIdentity<T>(arg: Array<T>): Array<T> {
    console.log(arg.length);
    return arg;
}
let err2: readonly Array<boolean>; // error!    
let okay: readonly boolean[]; // works fine
let okay2: ReadonlyArray<boolean>;