diff --git a/.prettierignore b/.prettierignore index 702e3571..4c7275e1 100644 --- a/.prettierignore +++ b/.prettierignore @@ -15,4 +15,5 @@ pnpm-lock.yaml /regression-test/issues /regression-test/workspace +/refs /.devbox diff --git a/docs/tips/generates-type-from-object-property.md b/docs/tips/generates-type-from-object-property.md index 3df963a5..87763b72 100644 --- a/docs/tips/generates-type-from-object-property.md +++ b/docs/tips/generates-type-from-object-property.md @@ -29,13 +29,13 @@ type ConfirmationMessage = ## 今回の問題を解くにあたって -今回は今まで紹介してきたオブジェクトから型を作り出す方法と Mapped Types の合わせ技で再現することができます。 +今回は今まで紹介してきたオブジェクトから型を作り出す方法とインデックスアクセス型の合わせ技で再現することができます。 [オブジェクトから型を生成する](generates-type-from-object.md) [オブジェクトからキーの型を生成する](generates-type-from-object-key.md) -アプローチの方法としてはまずオブジェクトからキーの型を生成し Mapped Types を使いオブジェクトのプロパティの型を参照、それらをリテラル型で取得します。 +アプローチの方法としてはまずオブジェクトからキーの型を生成し、インデックスアクセス型を使いオブジェクトのプロパティの型を参照、それらをリテラル型で取得します。 ### キーの型を生成する @@ -56,9 +56,9 @@ type Language = keyof typeof conf; // ^? ``` -### Mapped Types +### インデックスアクセス型 -オブジェクトのプロパティの型を参照するために Mapped Types を使います。そのとき元のオブジェクトから型を生成するために`typeof`を使います。 +オブジェクトのプロパティの型を参照するために[インデックスアクセス型](../reference/type-reuse/indexed-access-types.md)を使います。そのとき元のオブジェクトから型を生成するために`typeof`を使います。 ```ts twoslash const conf = { @@ -74,7 +74,7 @@ type ConfirmationMessage = (typeof conf)[Language]; // ^? ``` -### リテラル型を取得するできるようにする +### リテラル型を取得できるようにする このままだとオブジェクトから型を生成すると同じように型はリテラル型ではありません。つまりただの`string`型のユニオン型つまり`string`型です。そこで、元のオブジェクト`conf`に`as const`をつけます。 @@ -90,7 +90,7 @@ const conf = { ## まとめ -お好みで定義したキーの型`Language`を Mapped Types のキーの部分に代入します。最終的な形は次のようになります。 +お好みで定義したキーの型`Language`をインデックスアクセス型のブラケット内に指定します。最終的な形は次のようになります。 ```ts twoslash const conf = {