私の知る限り、配列の場合、プロパティの型は 2 つの方法で定義できます。
property_name: type
ここで、typeは
Array<string>, Array<MyType>, etc. (e.g. let prop1: Array<string>)
そして
string[], MyType[], etc. (e.g. let prop1: string[])
2 つのケースの違いは何でしょうか? それとも、私が何かを誤解しているのでしょうか (おそらく、キャストで使用される <> に関する何かでしょうか)?
編集:質問が重複としてマークされているので、any[]に関する他の質問があることは承知していますが、投稿する前に確認したところ、私にとっては[]と<>の違いよりも「any」型に関するものでした。
ベストアンサー1
意味的な違いはない
まったく違いはありません。は の配列の省略構文Type[]
です。は汎用構文です。 これらは完全に同等です。Type
Array<Type>
ハンドブックには、ここに例これは次のように書くことと同等です:
function loggingIdentity<T>(arg: T[]): T[] {
console.log(arg.length);
return arg;
}
または:
function loggingIdentity<T>(arg: Array<T>): Array<T> {
console.log(arg.length);
return arg;
}
以下は引用ですリリースノート:
具体的には、
number[]
は の省略形でArray<number>
あり、Date[]
は の省略形ですArray<Date>
。
readonly
型修飾子について
TypeScript 3.4では、readonly
型修飾子が導入されました。精密:
型
readonly
修飾子は配列型とタプル型の構文にのみ使用できます。
let err2: readonly Array<boolean>; // error!
let okay: readonly boolean[]; // works fine
次の宣言は以下と同等ですreadonly boolean[]
。
let okay2: ReadonlyArray<boolean>;