1. ホーム
  2. タイプスクリプト

[解決済み】TypescriptのArray<Type> VS Type[]について

2022-04-03 17:12:37

質問

私の知る限り、プロパティの型は、それが配列である場合、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つのケースはどう違うのでしょうか?それとも私が何か誤解しているのでしょうか(おそらくキャスティングで使用される<>に関する何か?)

EDIT 質問が重複しているので、any[]に関する他の質問があることは承知していますが、投稿する前に見てみたところ、私には異なる[]VSよりもanyという型に関する質問でした <> 私は質問しました。

どのように解決するのですか?

意味上の違いはありません

全く違いはありません。 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 type修飾子は、配列型とタプル型の構文にのみ使用することができます。

let err2: readonly Array<boolean>; // error!    
let okay: readonly boolean[]; // works fine

次の宣言は、次の宣言と同等です。 readonly boolean[] :

let okay2: ReadonlyArray<boolean>;