web-dev-qa-db-ja.com

配列からTypesScriptタイプを作成することは可能ですか?

私はしばしば道などのコードを使います

_export type Stuff = 'something' | 'else'
export const AVAILABLE_STUFF: Stuff[] = ['something', 'else']
_

このようにして、タイプStuffを使用することができ、必要な場合はすべての利用可能なものを繰り返すことができます。

これは機能しますが、情報の2倍を繰り返すように感じます。また、Stuffまたは_AVAILABLE_STUFF_のどちらかの更新もその対応物の更新が必要なので注意してください。

配列からタイプを定義する、あるいは配列をやや使用してデータを入力するためのより良い方法はありますか?

13
aherve

タイプスクリプトv3.14のようにかなり簡単です

あなたはこのようにすることができます -

export const AVAILABLE_STUFF = <const> ['something', 'else'];
export type Stuff = typeof AVAILABLE_STUFF[number];
 _

詳細--- https://www.typescriptlang.org/docs/handbook/release -notes/typescript-4-4.html#const-astions

0
Archit Garg