AnDeriensのブログ

個人的なブログです

TypeScript

jestでメモリリークするのでテストを分割実行する

テストの規模が大きくなってきたタイミングで、jest でメモリリークしてしまいなかなか回避できなかった。 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory 以下のissueを見てる感じ、根が深く…

TypeScriptでEnumの代わりにas constを使う

TypeScript ではEnum型が標準で用意されているが、使いづらい。 多くの場合、Enumで列挙したいような値は、as const で代用するのがいい。 例えば、自社で扱う果物を列挙する場合、 const FRUITS = { APPLE: 'apple', ORANGE: 'orange', BANANA: 'banana', }…

TypeScriptでCONSTANT_CASEからlowerCamelCaseに変換

CONSTANT_CASE -> lowerCamcelCase コンスタントケースからロウアーキャメルケースに変換します。 function toLowerCamelCase(v: string) { const upperCamel = v.toLowerCase().split('_').map((str) => str.charAt(0).toUpperCase() + str.slice(1).toLowe…

Prismaとリポジトリパターンの相性

Prismaとリポジトリパターンのポエム。※結論や答えのようなものはこの記事には含まれていません。

UnionTypeはclassのinterfaceとして使えない[TypeScript]

どうやらUnionTypeはimplementsできないらしい。

NestJSのLoggerの挙動を調べてみた

NestJSのLoggerをいい感じにしていきたいが、ドキュメント見ただけでは最終的にどう動作するのかよくわからない。 いくつか試してみた。 参考ドキュメント Logger | NestJS - A progressive Node.js framework 準備 とりあえず色付きのログが出るようにロガ…

型ってよくわからない

TypeScriptを書き始めて一ヶ月くらい経ったのだけど、まだまだ型を上手く使えている感じがしない。TSを書き始める前はPHPメインで書いていて、その時もある程度タイプヒンティングは使っていた。しかし、PHPは名称的型付けでTSは構造的型付けだし、PHPは実行…