仕事ですぐに使えるTypeScriptを読んでいくその34

これは

TypeScriptの学習にとても役立ちそうなドキュメントを教えてもらったので
コツコツと読んでいく記事です。

参考

著作権者:フューチャー株式会社(Future Corporation)様

future-architect.github.io

ジェネリクス

型変換のためのユーティリティ型

詳細は公式のハンドブックを見ると良いらしい。

www.typescriptlang.org

公式ハンドブックは少しだけ進めたけど止まっているのでこちらも進めていきたい。

オブジェクトに対するユーティリティ型

ジェネリクスを表すTに対して定義済みのオブジェクトを指定することで
変更を加えた新しいオブジェクトの型が定義できる。
 ・Partial:要素が省略可能になった型  ・Readonly:要素が読み込み専用になった型  ・Required:Partialとは逆。すべての省略可能な要素を必須にした型

const userDiff: Partial<user> = {
    organization: "Future Corporation"
};

公式のサンプルPartial

interface Todo {
    title: string;
    description: string;
}

function updateTodo(todo: Todo, fieldsToUpdate: Partial<Todo>) {
    return { ...todo, ...fieldsToUpdate };
}

const todo1 = {
    title: 'organize desk',
    description: 'clear clutter',
};

const todo2 = updateTodo(todo1, {
    description: 'throw out trash',
});

公式のサンプルReadonly

interface Todo {
    title: string;
}

const todo: Readonly<Todo> = {
    title: 'Delete inactive users',
};

todo.title = 'Hello'; //読み込み専用なのでエラーになる。

公式のサンプルRequired

interface Props {
    a?: number;
    b?: string;
};

const obj: Props = { a: 5 }; // OK

const obj2: Required<Props> = { a: 5 }; 

今日はここまで。