タグ

TypeScriptに関するmaecchiのブックマーク (74)

  • TS特化Clineプログラミング(テキスト版)

    tskaigi で発表した https://tskaigi.mizchi.workers.dev/ のコピペしやすい用にしたバージョンです。 ほぼ marp のソースコードそのままですが、プロンプトのコピペ用にそのまま公開します。 資料の内容 うまくいくプロンプト うまくいかないプロンプト、その理由 現状認識 注意: 前日リリースのClaude 4 の評価は間に合ってません!!!! Claude 4 Opus の高すぎる怖い 数時間触った感じ: 改善傾向だが、抱えてる問題も同じ傾向 主張: 言語特化プロンプトが必要(今は) Coding Agent は言語ごとのユースケースに最適化されていない ベストプラクティスをユーザーが取捨選定する必要 TS 周辺は技術選定で発散しがち プログラミング言語間の転移学習は不安定 GitHub を丸暗記しても、コンテキストに応じて翻訳&参照できるかは別の

    TS特化Clineプログラミング(テキスト版)
    maecchi
    maecchi 2025/05/25
    得意なことはなるべく委譲していきたいけどいずれはほとんど得意なことになるんだろうな
  • TypeScript開発にモジュラーモノリスを持ち込む - Sansan Tech Blog

    Bill One Entry*1の秋山です。 題へ入る前にお知らせです。12/23、TypeScript を活用した型安全なチーム開発をテーマにイベントを開催します。弊社社員のうち、TypeScript を日々の開発で活用しているメンバーが登壇します。ぜひお気軽にご参加ください。 sansan.connpass.com はじめに モジュラーモノリスとは 保守性が低いとビジネスに悪影響を与える 技術的負債と開発生産性 コード品質とビジネス影響 モジュール分割の方針 方針1:モジュールにDBテーブルを専有させる 補遺:モジュラーモノリスとNoSQL 方針2:モジュール内をレイヤードアーキテクチャとして構成する 方針3:ESLint ルールによって実現する TypeScript 開発にモジュラーモノリスを持ち込む ステップ1:単一のエイリアスを設定する ステップ2:ESLint ルールを設定す

    TypeScript開発にモジュラーモノリスを持ち込む - Sansan Tech Blog
  • Next.js 15 のリリースなど: Cybozu Frontend Weekly (2024-10-22号)

    はじめまして! サイボウズ株式会社 フロントエンドエンジニア(内定者バイト)の mehm8128 (@mehm8128) です。 はじめに サイボウズ社内では毎週火曜日に Frontend Weekly と題し「一週間の間にあったフロントエンドニュースを共有する会」を開催しています。 今回は、2024/10/22 の Frontend Weekly で取り上げた記事や話題を紹介します。 取り上げた記事・話題 Announcing Deno 2 Deno v2.0 がリリースされました。 v2.0 には次の内容が含まれます。 Node.js および npm との後方互換性 package.jsonとnode_modulesをネイティブでサポート Next.js、Astro、Remix、SvelteKit など多くのフレームワークをサポート deno fmtで HTMLCSSYAML をフ

    Next.js 15 のリリースなど: Cybozu Frontend Weekly (2024-10-22号)
    maecchi
    maecchi 2024/10/27
    Next.js15はReact19サポートするようになったので検証できそう
  • VSCodeでホバー時のTypeScriptの型ヒントをすべて表示する

    はじめに こんにちは、からころです。 今回は、VSCode でホバー時の TypeScript の型ヒントをすべて表示する方法について書いていこうと思います。 ※ 投稿日の 2024/10/17 から 2024/10/28 ごろに仕様が変わり、defaultMaximumTruncationLengthの書き換えだけでは、動作しなくなりましたので修正版を公開しています。 デフォルトの設定では型の情報量が増えると型が省略される VSCode では、TypeScript を利用して開発する際に、ホバーすると以下のように型ヒントを表示することができます。 しかし、デフォルトの設定のままでは、下記のようにプロパティ数が多くなると型ヒントが省略されてしまいます。 上記の解決方法を以下で説明していこうと思います。 tsconfig.json に noErrorTruncation:true を追加する

    VSCodeでホバー時のTypeScriptの型ヒントをすべて表示する
  • TypeScriptの不要なexportを自動で削除するOSS「ts-remove-unused」を開発しました

    こんにちは。メディアカンパニーに所属する鴻巣和司 (@kazushikonosu) です。普段はLINEスキマニのフロントエンドの開発をしています。業務をきっかけに、TypeScriptの不要なデッドコードを自動で削除するツール ts-remove-unused を開発し、GitHub上でOSSとして公開しました。稿では、ts-remove-unusedが解決しようとしている問題や直近で行った大規模な変更について紹介します。 exportしていることで気づきにくい不要なコード TypeScriptを使っている場合、tsconfig.json の compilerOptions.noUnusedLocals を有効にすることで、ファイル内で参照がない不要な変数などの定義をTypeScriptコンパイラの実行時に検知することが可能です。また、ESLintなどの静的解析ツールを使い適切にルール

    TypeScriptの不要なexportを自動で削除するOSS「ts-remove-unused」を開発しました
    maecchi
    maecchi 2024/09/08
    export変数はコード整理時に見逃しがちなので試してみよう
  • ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる

    この記事は、静的解析とビルドサイズ面で興味深いテーマでした。記事として自分の考えを書きます。 注意。あくまでビルドパフォーマンス視点での最適化です。強い意図があって、自分のドメインモデリングの方法論ではこれが最適なんだ、というなら元コードの方法論を止めるつもりはありません。 元記事のコードを minify するとどうなるか 元コードを参考に、それにアクセスするサンプルコードを書いてみます。 const sortingOptions = { priceDesc: { id: "priceDesc", sort: "price", order: "desc", label: "価格が高い順", }, priceAsc: { id: "priceAsc", sort: "price", order: "asc", label: "価格が安い順", }, ratingDesc: { id: "ra

    ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる
  • TypeScript 5.5 で追加された正規表現構文チェックを理解する

    TypeScript 5.5で、@graphemeclusterさんによって正規表現リテラルの構文チェックが導入されました🎉 この構文チェックによって、正規表現に間違いがあった場合、事前にTypeScriptがエラーを出力してくれます。 この機能について、次のことが気になったので調べてみました。 どんな構文がエラーになるか なぜ導入されたか どうやってチェックしているか JavaScriptで実行できるがTypeScriptでエラーになる構文はあるか ESLintとのカバー範囲の違い 記事に関して、誤り等があれば指摘いただけると嬉しいです。 どんな構文がエラーになるか TypeScript 5.5では、正規表現に関するエラーメッセージが40個程度追加されています。 例えば、下記のような構文は、5.5でエラーになります。 // 存在しないフラグ var re = /a/b; // エラー

    TypeScript 5.5 で追加された正規表現構文チェックを理解する
    maecchi
    maecchi 2024/06/23
    不明なUnicode プロパティは時々忘れることがあるのでこの点は自分に取って助かる
  • TypeScriptのパフォーマンス改善

    2024/05/11に行われたTSKaigiで発表したLTの資料です! ◎概要 TypeScriptJavaScriptのスーパーセットとして、静的型付けと高度な型システムを提供し、大規模なプロジェクトの開発を助けています。しかし、これらの利点を最大限に活用するためには、コンパイルパフォーマン…

    TypeScriptのパフォーマンス改善
    maecchi
    maecchi 2024/05/12
    自分の環境の型定義をintefaceにすべて変更したらどのくらい変わるか試してみるかな
  • Announcing TypeScript 5.5 Beta - TypeScript

    Today we are excited to announce the availability of TypeScript 5.5 Beta. To get started using the beta, you can get it through NuGet, or through npm with the following command: npm install -D typescript@beta Here’s a quick list of what’s new in TypeScript 5.5! Inferred Type Predicates Control Flow Narrowing for Constant Indexed Accesses Type Imports in JSDoc Regular Expression Syntax Checking Iso

    Announcing TypeScript 5.5 Beta - TypeScript
    maecchi
    maecchi 2024/04/28
    関数からtype predicatesを推論できるようになるのは自分にとっては便利になりそう
  • コードフォーマッターとしてBiomeを使う

    Web 開発のための高速なツールチェーンである Biome が使われることが増えてきました。今のところ、linterformatter の機能を備えています。 普段、JavaScript および TypeScript プロジェクトのコードフォーマッターには Prettier を使っていますが、速度面の魅力がある biome を使って見ました。ESLint で使いたいルールや plugin があるので、lint 機能は使わないで ESLint に任せる前提です。 この記事では、biome をコードフォーマッターとしてだけ使うケースにフォーカスして書きます。 セットアップ ドキュメントに従ってセットアップするだけなので、導入はシンプルだと思います。

    コードフォーマッターとしてBiomeを使う
    maecchi
    maecchi 2024/04/07
    本文にも書かれていますが新しい構文のサポート速度が気になります。
  • TypeScript 5.5で型述語を推論できて最高。配列のfilterも型安全に

    2024/6/20 TypeScript 5.5が正式リリースしたので追記しました。 TypeScriptの次バージョン5.5で、開発者が長い間求めていた機能がついに実現されました。 従来のTypeScript 5.4以前では、ユーザー定義型ガードを使う際には型述語(用語は後ほど解説します)の記述が必要です。 ▼ TypeScript 5.4 function isNumber(value: number | string): value is number { return typeof value === 'number'; } 2024年6月20日にリリースされたTypeScript 5.5では、関数の実体から型述語の型推論(infer type predicates)が可能になります。すなわち、次のようなコードが可能です。 ▼ TypeScript 5.5

    TypeScript 5.5で型述語を推論できて最高。配列のfilterも型安全に
    maecchi
    maecchi 2024/03/24
    型術後の型推論は時々使っているから導入されると楽になりそう
  • TypeScriptで知ってコードの安全性が上がったtips集

    TypeScriptを用いた開発では、その型システムを活かしてランタイムエラーを事前に防いだり、実装漏れを防いだりとコードの安全性の向上を図ることができます。 記事では、個人的に知ったおかげでコードの安全性が増した!と感じたtipsをまとめました。 ※ なお、linterを用いたコードの安全性向上も非常に有効ですが、この記事では主にTypeScriptの型システムに焦点を当てています。 tips集 配列周りのtips まずは配列を扱う際に役立つ、tipsを紹介します。 配列からUnion型を作成する ↓のように(typeof array)[number]で配列の全要素を持つUnion型を作成できます。 const fruits = ["apple", "banana", "lemon"] as const; type Fruit = (typeof fruits)[number]; //

    TypeScriptで知ってコードの安全性が上がったtips集
    maecchi
    maecchi 2024/03/20
    type-challengesはまだ全部終わっていないから少しずつ進めていこう
  • Next.js App Router での i18n 対応例

    概要 色々あって参画している案件で Next.js の App Router への移行を主導する立場になりました。 なかでも i18n 対応が結構骨が折れた印象でした。 いろんな記事を見たが Server Component (以下、SC) に対応しているものが見当たらなかった Root layout にて Provider でラップするとかはあった けどそれだと Client Component (以下、CC) になるのでは(実際にハンズオンで確認まではしてないけど) Next.js の公式ドキュメントで SC の対応例は掲載されていた ただ、 スクラッチ実装なりの問題点はある[1] react-i18next とか next-i18next を使った方がインターフェースの統一性が取れる デファクトなパッケージであれば使用経験者も多い i18nライブラリは複数形や文脈に応じた翻訳、フォー

    Next.js App Router での i18n 対応例
    maecchi
    maecchi 2024/02/11
    App Routerを利用する際に参考にするかも
  • GraphQLのスカラーとTypeScriptの考察

    皆さんこんにちは。筆者は最近、TypeScriptからGraphQLを使用するためのコード生成ツールnitrogqlを開発しています(初手宣伝)。 直近は、GraphQLのスカラーに関する機能拡張を行っていました。この記事では、そこで得た知見と考察について共有します。 GraphQLのスカラーとは GraphQLにおけるスカラーとは、それ以上分解できないデータ型のことです。GraphQLのデータはスカラー・オブジェクト・enumに分類でき、データの末端はスカラーまたはenumになります。 GraphQL仕様では組み込みのスカラー型が定義されており、以下のものがあります。 Int Float String Boolean ID また、カスタムスカラーとして、追加のスカラー型をスキーマ上で定義することもできます。 スカラー値がサーバー・クライアント間でやり取りされるときはシリアライズする必要が

    GraphQLのスカラーとTypeScriptの考察
  • 2023 年の Prettier 振り返り

    2023 年の Prettier の活動を振り返ります。 Prettier とは Prettier は JavaScript で書かれたコードフォーマッタです。設定可能な項目が少ないいわゆる opinionated なコードフォーマッタです。JavaScriptTypeScript だけではなく、HTMLCSSGraphQL などもサポートしています。 リリース 2023 年は、メジャーバージョンのリリースが 1 回、マイナーバージョンのリリースが 1 回でした。これまでは 3 ヶ月に 1 回程度マイナーバージョンをリリースしていたので、頻度は少し下がっています。 ですが、メジャーバージョンである 3.0 をリリースできたことと、これまでよりもカジュアルにパッチバージョンをリリースするようになったことを考えると、開発自体が停滞しているわけではないと思っています。 「カジュアル

    2023 年の Prettier 振り返り
    maecchi
    maecchi 2023/12/28
    メジャーバージョンが上がったのは本当に久しぶりだった。
  • ナメやがってこの型ァ!!超イラつくぜぇ~~~~~ッ!!

    const colors = ["赤","青"] as const; type Colors = typeof colors[number]; //"赤" | "青" typeof colors[number]・・・ってよォ~~~~~ typeofはわかる。スゲーよくわかる TypeScritの世界では、typeofで変数から型を作れるんだよなァ だがnumberってのはどういう事だああ~~~~っ!? 配列にnumberを渡せるかっつーのよ───────ッ!! ナメやがってこの型ァ!! 超イラつくぜぇ~~~~ッ!! 解説 これはよォ 「Lookup Type」ってやつらしいぜぇ たとえばよォ 👇みたいに書くとPerson型からプロパティの型を取り出せるよなァ~?? type Person = { name: string, age: number } type name = Person

    ナメやがってこの型ァ!!超イラつくぜぇ~~~~~ッ!!
    maecchi
    maecchi 2023/11/12
    Distributive Conditional Typesは理解がし辛いからあまり使いたくはないですね・・・
  • ESLint を使い倒す(おすすめルール紹介)

    前書き ESLintJavaScript, TypeScript のための静的検証ツールです。 ESLint を活用することで、コーディング規約やベストプラクティスを機械的に強制することによりコードレビューの手間を省き、番環境でのエラーやパフォーマンスの悪化を抑制することができます。 TypeScript を使っているプロジェクトでは、パーサーを適切に設定すれば型情報を用いたより精密な静的検証を行うこともできます。 eslint を使う際、 eslint:recommended, plugin:@typescript-eslint/eslint-recommended などの各 eslint plugin の推奨 config のみを使って済ませたり、 eslint-config-airbnb などの config のみに頼ることも多い印象ですが、 recommended conf

    ESLint を使い倒す(おすすめルール紹介)
    maecchi
    maecchi 2023/10/08
    型周りの設定は再度見直してみようかな
  • TypeScript のドキュメンタリーの公開など : Cybozu Frontend Weekly (2023/09/26号)

    TypeScript のドキュメンタリーの公開など : Cybozu Frontend Weekly (2023/09/26号) こんにちは! サイボウズ株式会社フロントエンドエンジニアの nissy です。 はじめに サイボウズでは毎週火曜日に Frontend Weekly という「1 週間の間にあったフロントエンドニュースを共有する会」を社内で開催しています。 今回は、2023/09/26 の Frontend Weekly で取り上げた記事や話題を紹介します。 取り上げた記事・話題 Node v20.6.0 (Current) | Node.js Node.js v20.6.0 のリリースブログです。.env ファイルのビルトインサポートや import.meta.resolve がフラグなしで利用可能になる等の更新が行われています。 Chakra, Panda and Ark -

    TypeScript のドキュメンタリーの公開など : Cybozu Frontend Weekly (2023/09/26号)
  • React + TypeScript: useMemoフックの使い方と使いどころ - Qiita

    引数 calculateValue: キャッシュする値を計算する関数。純粋で、引数は取らず、任意の型の値を返さなければなりません。Reactは、まず最初のレンダー時に関数を呼び出し、値が返されます。次回以降のレンダリングについてはつぎのとおりです。 直前のレンダー時と依存値が変わっていないとき: Reactは前と同じ値を返します。 直前のレンダー時から依存値が変わった場合: calculateValueが呼び出され、返されるのは新たな結果です。値はあとで使えるように保存されます。 dependencies: CalculateValueのコード内で参照されるすべてのリアクティブ値の配列。リアクティブな値に含まれるのは、プロパティと状態、およびコンポーネント体に直接宣言された変数と関数です。React用に設定されたリンターであれば、リアクティブな値がすべて依存関係に正しく指定されているかを

    React + TypeScript: useMemoフックの使い方と使いどころ - Qiita
  • React + TypeScript: カスタムフックでロジックを再利用する - Qiita

    React公式サイトのドキュメントが2023年3月16日に改訂されました(「Introducing react.dev」参照)。稿は、応用解説の「Reusing Logic with Custom Hooks」をかいつまんでまとめた記事です。ただし、コードにはTypeScriptを加えました。反面、初心者向けのJavaScriptの基礎的な説明は省いています。 なお、シリーズ解説の他の記事については「React + TypeScript: React公式ドキュメントの基解説『Learn React』を学ぶ」をご参照ください。 Reactには、useStateやuseContext、useEffectなどさまざまな組み込みフックが備わっています。けれど、もっと特定の目的に応じたフックが必要になることもあるでしょう。たとえば、つぎのような用途です。 データの取得。 ユーザがオンラインかど

    React + TypeScript: カスタムフックでロジックを再利用する - Qiita