mongolyyのブログ

開発(Javascript, Typescript, React, Next.js)や開発手法(スクラム, アジャイル)、勉強したことについて色々書ければと。

TypeScript

【TypeScript】2つの型システムが混在することを意識すべしという話

TypeScriptを使っているなかで、気になった挙動に遭遇したので備忘録として残しておきます。 例えば、標準のErrorクラスを拡張して、InvalidError というカスタムエラーのクラスを作るとします。 class InvalidError extends Error { constructor(message: s…

TypeScriptで共通なstaticプロパティを定義する

最初にやろうとしたこと interfaceでstaticプロパティを宣言して、その実装クラスで初期化しようとしました。 interface MoneyIF { static readonly CurrencyUnit: string readonly amount: number } class JPY implements MoneyIF { static readonly Curren…

「プロを目指す人のためのTypeScript入門」を読んだ

はじめに こんにちは。mongolyyです。 近頃TypeScriptを触っているのですが、先月、次の本が出版されたので読んでみました。 感想を書いていこうと思います。 プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで Software …

React系のライブラリにおいて、ts/tsxをトランスパイラーとして、何が使用されているのか調査してみた

はじめに 「Reactを使っている場合はjsxをトランスフォームするためにbabelを使用するのはわかるが、React + TypeScriptの組み合わせを使っている場合、tscでトランスパイルすれば、tsxのトランスフォームもtscがしくてれて、babel使わなくていいんじゃない…

TypeScriptにおいて、とある型の一部のプロパティのみを必須にする型エイリアスを定義する

何がしたいか? TypeScriptにおいて、とある型の一部のプロパティのみを必須にした型を作りたいとします。 次の例で言うと、とある型(User)を元に、一部のプロパティ(age)を必須にした新たな型(AdultUser)を作りたいとします。 type User = { name: st…