0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TypeScript readonlyとas constの使い方

Posted at

はじめに

TypeScriptにおいて、Readonly<T>as constは、オブジェクトや配列をイミュータブルにするための非常に便利な機能です。この記事では、これらの特性をどのように利用するかを解説します。

セクション1: Readonlyの基本

Readonly<T>型は、型Tのすべてのプロパティを読み取り専用にします。これにより、オブジェクトのプロパティ値の変更を防ぐことができます。

interface Example {
  prop: string;
}

const example: Readonly<Example> = { prop: "Hello" };

// 以下のコードはコンパイルエラーになります
example.prop = "Hi"; // Error! Cannot assign to 'prop' because it is a read-only property.

セクション2: 関数パラメータとしてのReadonly

関数のパラメータとしてReadonly<T>を使用することで、関数内でオブジェクトのプロパティが変更されないことを保証できます。

function doSomething(obj: Readonly<Example>) {
  // 以下のコードはコンパイルエラーになります
  obj.prop = "Hi"; // Error! Cannot assign to 'prop' because it is a read-only property.
}

セクション3: as const の使用

as constは、オブジェクトや配列をリテラル型として扱うことができるTypeScriptの構文です。これにより、変数が持つ値が唯一のリテラルとなり、それ以上狭い型になります。

const example = { prop: "Hello" } as const;

// 以下のコードはコンパイルエラーになります
example.prop = "Hi"; // Error! Cannot assign to 'prop' because it is a read-only property.

まとめ

Readonly<T>as constはTypeScriptでイミュータブルなコードを書く際に重要なツールです。これらを適切に使用することで、コードの安全性と堅牢性を向上させることができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?