2017-05-23 4 views
1

私は長さ1または2のtypescriptを持つことができる配列をエンコードするとします。例えば、私は、さらに文字列の特定の数の一つである配列の最初の要素を限定することを望んでいたと言う:タイプスクリプトのための柔軟な配列型

type fruit = 'banana' | 'apple' | 'passionfruit' | 'kiwi'

第2の鍵は、柔軟でした。

declare interface ObjectExample { 
    fruit: fruit, 
    other?: string 
} 

が、配列のために:のような

何か。これをどうやってやりますか?

答えて

1

これは次のようになります。

type ObjectExample = [fruit] | [fruit, any]; 

しかし、これは、配列の3番目の要素を割り当てたりアクセスからあなたを防ぐことはできません。

知られているインデックスのセット外の要素にアクセスし、共用体型が代わりに使用されています:その意味で

、2番目の要素の種類を制限する場合を除き、TSドキュメントから上記は、

type ObjectExample = [fruit]; 
と等価です。