TSKaigi 2026で話をしました。 https://2026.tskaigi.org/talks/8
export type Rectangle = { height: number; width: number; }; export const Rectangle = { from(height: number, width: number): Rectangle { return { height, width, }; }, }; // Rectangleという宣言が型と値の両方で使える! const rectangle: Rectangle = Rectangle.from(1, 3); サバイバルTypeScriptを読んだ方は、型(Type)と値(Value)を同じ名前で定義するテクニックとしてご存知かもしれません。 実はこれ、名前空間(namespace)も加えた 「三重定義」 が可能なんです。 今回は、この「三重定義」を活用することで実現できる、Reactコンポーネントの柔軟
Today we are excited to announce the availability of TypeScript 6.0! If you are not familiar with TypeScript, it’s a language that builds on JavaScript by adding syntax for types, which enables type-checking to catch errors, and provide rich editor tooling. You can learn more about TypeScript and how to get started on the TypeScript website. But if you’re already familiar with the language, you ca
Rewriting our Rust WASM Parser in TypeScriptWe rewrote our Rust WASM Parser in TypeScript - and it got 3x Faster We built the openui-lang parser in Rust and compiled it to WASM. The logic was sound: Rust is fast, WASM gives you near-native speed in the browser, and our parser is a reasonably complex multi-stage pipeline. Why wouldn't you want that in Rust? Turns out we were optimising the wrong th
1月6日、TwitchのエンジニアJosh Ribakoff氏が「How Twitch Tamed a Million Lines of TypeScript」と題したブログ記事を公開し、注目を集めている。この記事では、巨大なコードベースにおけるエンジニアリング基準の維持と、Lintルールの例外管理をスケーラブルに行う手法について詳しく紹介されている。 1月6日、TwitchのエンジニアJosh Ribakoff氏が「How Twitch Tamed a Million Lines of TypeScript」と題したブログ記事を公開し、注目を集めている。この記事では、巨大なコードベースにおけるエンジニアリング基準の維持と、Lintルールの例外管理をスケーラブルに行う手法について詳しく紹介されている。 以下に、その内容を紹介する。 Twitchにおいて、筆者のチームの役割は、パフォーマンス
初期のネイティブプレビューでは「高速だが不安定」との指摘があったものの、言語サービスの内部構造を見直し、共有メモリ型の並列処理を取り入れることで、安定性とスケーラビリティを高めたとしている。大規模コードベースを含め、クラッシュが起きにくい構成に再設計しているという。 「ネイティブ版ではプロジェクトの読み込み時間短縮、メモリ使用量削減、エディタ全体の応答性向上が期待できる。不具合や未移植機能があった場合に備え、拡張機能側には従来のTypeScriptエンジンとネイティブ版を切り替える機能も用意している」(Microsoft) コンパイラのネイティブ移植も進んでおり、npmでは「@typescript/native-preview」としてナイトリービルドが公開されている。ローカル開発用には「npm install -D @typescript/native-preview」、グローバルには「n
About This Title Pages: 180 Published: March 2026 ISBN: 9798888651988 In Beta Debugging TypeScript Applications Build Web Apps That Don't Break by Andrey Ozornin New code becomes cheaper every day, but maintenance does not. Bugs are faster, subtler, and harder to catch, and dealing with them is increasingly difficult. This book will make it easier, showing you both useful (and underused) features
TypeScript 7で消えるtsconfigのレガシー設定。target: es5やbaseUrlにサヨウナラ TypeScript 7ではtarget: es5やbaseUrlといった長年のレガシーな設定が削除され、strict: trueが標準になるなどデフォルトの挙動が変更されます。本記事では、消えるレガシーな設定や挙動が変わる主要な設定について、設定の基本知識から代替案までを解説します。ご自身のtsconfig.jsonを更新する際の参考になれば幸いです。 TypeScript 7とは そもそもTypeScript 7ではコンパイラーが大きく変わります。現在のTypeScriptのコンパイラーはTypeScriptで記述されていますが、TypeScript 7ではGO言語によるネイティブコンパイラー「tsgo」となります。コンパイル速度が10倍向上するという公式発表があり、実際
AIを使う開発者は自分の好みの言語よりも、AIのハルシネーションが少ないTypeScriptのような型付け言語を選ぶようになる。GitHubがAIによる変化を予想 GitHubは、開発ツールとしてAIが導入されていくことで、プログラミング言語やフレームワークの選択にどのような影響を与えるかを考察したブログ記事「TypeScript, Python, and the AI feedback loop changing software development」(TypeScript、Python、そしてAIフィードバックループがソフトウェア開発を変えていく)を公開しています。 AI導入によって静的型付け言語が選ばれるようになる 記事では、静的型付け言語の方がAIがより正確なコード生成を行いやすい傾向にあり、それゆえにAIツールを利用する開発チームでは開発者の好みよりもAIとの相性が良いプログ
はじめに TypeScriptでコンポーネントのPropsやオブジェクトの型を定義するとき、typeとinterfaceのどちらを使うべきか、一度は悩んだことがあるのではないでしょうか。 巷では「どちらでも良い」「チームで統一されていればOK」といった意見もよく見かけます。 しかし、私は 明確な理由をもって「基本的にはinterfaceを使うべき」 だと主張します。 この記事では私の実体験で遭遇したReactのPropsの深刻なパフォーマンス問題を例に交えながら、なぜinterfaceが優れているのか、そしてtypeはどのような場面で使うべきなのかを解説します。 type aliasを使いたくなる魅力と、その裏に潜む罠 まず、なぜ多くの開発者がtypeを選びがちなのでしょうか。 それは、開発体験の良さにあります。 typeで定義した型は、VSCodeなどのエディタでホバーすると、最終的に解
概要 一気にJavaScript・TypeScriptのエキスパートへ! Software Design本誌再編集シリーズ、今度はWeb開発者の必修科目であるJavaScriptとTypeScriptがテーマです。第一線のエンジニアが現場で培った、JavaScript・TypeScriptを最大活用する秘訣を伝授します。 第1章ではJavaScriptの歴史をさかのぼりつつ、基本的な仕様やコーディング作法を解説します。第2章でJavaScriptの関数について、関数のしくみ、引数、関数型プログラミングなどの観点で徹底的に解き明かします。第3章では、JavaScriptの非同期処理について、非同期処理そのものの変遷から、並行・並列処理の違い、Promiseやasync/await、AbortSignal/AsyncLocalStorageまで詳細に掘り下げます。第4章では、TypeScrip
TypeScriptファーストなコーディングAIエージェントのベンチマーク「ts-bench」を公開しました AIコーディングエージェントのTypeScriptコード編集能力を評価するための、手軽に再現可能なベンチマークプロジェクト「ts-bench」を公開しました。この記事では、筆者がなぜ ts-bench を作ったのか、今後どうしていきたいかについてお話しします。 ts-benchの仕組みts-benchは、プログラミング学習プラットフォーム Exercism のTypeScript問題セットを利用します。各問題には、仕様を説明するドキュメント、エージェントが編集すべきソースコードのひな形、そして正解判定に使うテストコードが含まれています。 ベンチマークタスクは、各問題に対して以下の4つのステップを順番に実行します。 AIエージェントの実行: 問題の指示書をプロンプトとしてAIエージェ
import { LMStudioClient } from "@lmstudio/sdk"; const client = new LMStudioClient(); const model = await client.llm.model("gemma-3-270m-it"); const result = await model.respond("p5.jsについて簡単に説明して"); console.info(result.content); そして、上記を nodeコマンドで実行してみた結果は以下のとおりです。 lmstudio-js を利用するメリット 最後に、lmstudio-js を利用するメリットについて記載します。 情報の参照元は、公式のページに書かれた以下の部分です。 OpenAI SDK ではなく lmstudio-js を使うメリット LM Studio では、O
はじめに こんにちは、岩佐 幸翠(@kosui_me)です。カケハシで認証基盤・ライセンス基盤・組織階層基盤などのプラットフォームシステムを開発・運用する認証権限基盤チームのテックリードをしています。 TypeScriptのクラス構文は、一見するとJavaやC#などの言語と非常に似ていますが、その背景にあるJavaScriptの特性により、振る舞いに重要な違いが存在します。これらの違いを理解することは、これまでの経験を活かしつつ、TypeScriptで堅牢なアプリケーションを構築する上で非常に重要です。 本記事では、主にJavaやC#など、クラスベースの静的型付け言語に慣れ親しんだエンジニアの方々を対象に、TypeScriptでクラスを扱う際に特に留意すべきポイントを解説します。さらに、クラスを用いない関数型のアプローチについても触れ、TypeScriptにおけるドメインモデリングの多様な
TL;DR 公開 API では T[] を避け, ReadonlyArray<T> を使いましょう. 内部実装でのみArray<T>を使うのはOK Array<T> ではなく ReadonlyArray<T> を使おう 以下のコードには受け取った配列をソートして表示する sortLog 関数と, 0番目の要素を 999 にした配列を表示する setLog 関数を定義して使用しています const sortLog = (array: Array<number>): void => { console.log(array.sort((a, b) => a - b)); }; const setLog = (array: Array<number>): void => { array[0] = 999; console.log(array); }; const array = [2, 1, 3]
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く