Microsoftが2012年10月に発表した AltJS のひとつ。C#の設計者でもあるAnders Hejlsbergが設計した。
構文はJavaScriptの上位互換であり、オプショナルな型アノテーションやECMAScript6 (ECMA-262 6th) のクラス構文などを追加している。
はじめに こんにちは。システム本部メディアシステム部iPLチームの大井です。 本記事では、私が所属しているiPLチームについて紹介します。 レバレジーズという多くの事業を展開し、急成長を遂げている会社であるが故の課題に対してシステムで解決すべく、どのように取り組んでいくのかお伝えできればと思います。 はじめに iPLチームとは 業務内容 新卒採用管理システム(ATS) 配賦処理システム 統合法人データベース 類似度判定システム 従業員管理システム M&A 使用している技術について やりがい 働き方(一例) 最後に iPLチームとは iPLはinternal Product Lab.の略で、「社…
はじめに こんにちは!エンジニアの龍野卓己です🐉 先日、TypeScriptに特化した知識とアイデアを交換する場として、技術者たちの熱い議論を呼び起こす「shibuya.ts」が東京・渋谷で初めて開催されました。このイベントの特色は、ライトニングトーク(LT)や懇親会を通じて、参加者が自身のTypeScriptに対する思いや経験を共有し、同じ技術を愛する仲間たちと新たな絆を深める点にあります。 shibuya-ts.connpass.com トグルホールディングスが開発するプロダクト「デベNAVI」ではTypeScriptを開発の中心に据えており、そのため多くのエンジニアが参加しました。 中で…
今日も元気に5時起き朝活!よろしくお願いします! 学んだこと TypeScriptでクラス with アロー関数を使うとテストで困る 参考 読書 7つの習慣 読書記録はZennスクラップで随時更新中 関連動画 まとめ 学んだこと TypeScriptでクラス with アロー関数を使うとテストで困る TypeScriptのclassのinstance methodをarrow functionで書くと困ることになるかもしれない話 DDDのValue ObjectをTSのクラスで書いていたら、まさしくこの記事と同じ現象に悩まされた TSのclassでアロー関数を使うと、等価性評価のときにアロー関…
こんにちは。アプリケーションサービス部の渡辺です。 コードの品質担保にはいろいろな方法があると思います。テストカバレッジ上げることだったり、実際に動かしてみて不具合がないか確認してみたりなどです。 運用を見据えると コードの読みやすさ を品質として定義することもできますね。 ただ、 コードの読みやすさ っていったい何でしょう? 実装者はおそらくそのコードをスラスラ読むことができますよね。一方で他の人はそのコードをスラスラ読むことができるケースとできないケースがありそうです。 おそらく、経験などが大きく影響してくると思います。 経験などの不確実なものでなく、何か仕組みで コードの読みやすさ を担…
GMOメイクショップコアグループでエンジニアをしている池田です。 とあるライブラリのバージョンを上げた際にライセンスの形態が変わり、ライセンスの使用条件に違反しているのではないかという話が挙がりました。 再発しこちらでも気付けなかった場合に大変ということで、ライセンスをホワイトリスト方式で自動チェックする仕組みを考え導入したので、ご紹介したいと思います。 はじめに 対象 ライセンスチェックを行うツール選定 dependency-review-action License Finder license-checker go-licenses ライセンスチェックの導入 license-checke…
文字列は実質Any 例えば従業員IDを管理するemp_123456_idと部署IDを管理するdep_123456_idがあるとする。 これを文字列として扱った場合、コードとしては以下のようになる。 val employeeId = "emp_123456_id" val departmentId = "dep_123456_id" しかし、これらは文字列のためこのように従業員IDと部署IDを間違って代入できてしまう。 val employeeId = "dep_123456_id" val departmentId = "emp_123456_id" これは両方とも文字列のため、コンパイラは従…
ZESTにおけるPrismaのリードレプリカ対応について こんにちは!株式会社ゼストでエンジニアをしている正原です。 今回は弊社にてDBに対する負荷対策としてリードレプリカを導入したときの課題と対応についてまとめたいと思います。 これまでのDBアクセスについて リードレプリカの話をする前に、まずは弊社プロダクトでのこれまでの実装や方針を紹介したいと思います。 Prisma ゼストではORMとしてPrismaを採用しています。 www.prisma.io Prismaについてはすでに多くの記事で紹介されているかと思いますが、使いやすく開発体験が良いため今ではゼストの開発にとってなくてはならない存…
Next.js 製アプリの Node.js 環境で軽めの ts ファイルを実行したいとき(DB用のシーダーなど)、詰まったので備忘録です。 ※Node 23 からTS実行できるらしいのですが、そちらはまだ試してません。 www.totaltypescript.com そのままだとTypeScript動かせないのでts-nodeをインストール。 コード内のimport文でエラー。 Next.jsデフォルト設定だとtsconfig.jsonのcompilerOptionsで「"module": "esnext"」となっているが、Node.jsはデフォルトのCommonJS環境(require使う方…
はじめに 型安全性と拡張性の両立 宣言マージの活用 宣言マージとは? 宣言マージを使ってメッセージの型を拡張する 型エイリアスと Generics を使った方法との比較 宣言マージを使うことで実装と型の整合性を担保しやすくなる MUI での宣言マージの活用事例 注意点 VS Code 上の型チェックの表示が tsc の型チェックの結果と異なる場合がある ライブラリ側が空の interface のままだと困ることがある なぜ react-redux ではこのアプローチをやめたのか? まとめ interface の宣言マージを活用することで はじめに こんにちは!Element チームでフロントエ…
まっさきにデプロイ まずはTypeScript 次はtailwindcss 問題発生!! 次のプロジェクト、自前の開発に、Parcel + TypeScript + Tailwindcss環境を作ったメモ 自分の学習用プロジェクトの一環で、Parcel + TypeScript + Tailwindcss環境を作成したので、その備忘録として書いています。 まっさきにデプロイ vercel.com 自分はvercelのサーバーレスを利用しているので、対応のスターターを利用して最初にデプロイしてしまいます。 これは自分で作成した環境がデプロイできるのか不確かなため、確実にできるように先にしてしまい…