As far as I know a property's type can be defined in two ways when it's an Array.
property_name: type
where type can be either
Array<string>, Array<MyType>, etc. (e.g. let prop1: Array<string>)
and
string[], MyType[], etc. (e.g. let prop1: string[])
What is the difference between the two cases? Or am I misunderstanding something (perhaps something about <> used in casting?)
EDIT since the question is marked as duplicate, I am aware there is the other question about any[] but still I had a look at it before posting and to me it was more about the type 'any' than the different [] VS <> I asked
means that it's a plain array, with an implicit
any
type for it's membersmeans that it's an array of strings, i.e. TypeScript will go mental if you try pushing anything other than strings into that array.
There isn't any semantic difference
There is no difference at all.
Type[]
is the shorthand syntax for an array ofType
.Array<Type>
is the generic syntax. They are completely equivalent.The handbook provides an example here. It is equivalent to write:
Or:
And here is a quote from some release notes:
However, there is a case where the shorthand syntax is required
Since TypeScript 3.4, there is a difference for the new
readonly
type modifier. Indeed: