タグ

typescriptに関するshoh8のブックマーク (4)

  • 「型システムのしくみ」発売のお知らせ - まめめも

    「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」というを書きました。 「型システムの仕組み - TypeScriptで実装しながら学ぶ型とプログラミング言語」 どんな? 簡単な型チェッカを自作してみることで、型システムの仕組みを概観するです。 型チェックする対象の言語はTypeScript(のサブセット言語)、型チェッカを実装するための言語もTypeScriptです。 たとえば、次のようなプログラムが型チェックできるようになります。 const add = (x: number, y: number) => { return x + y; } const a = add(1, 2); const b = a + true; 型チェッカは、それぞれの変数がどういう型を持つか管理しつつ、プログラムの各パートがどういう型になるかを判定していきます。

    「型システムのしくみ」発売のお知らせ - まめめも
    shoh8
    shoh8 2025/04/10
    “TypeScriptの型システムを詳しく説明する本ではありません。 あくまでTypeScriptを題材として、TAPL流の古典的な型システムを解説”
  • TypeScript の Go 移植に備えて知っておくべきこと

    はじめに こんにちは、ダイニーの ogino です。 TypeScript のコンパイラは今まで TypeScript で実装(セルフホスト)されていました。 それが TypeScript 7.0 から、Go による実装に移植され、10 倍高速になります。 記事は、移植に関して筆者が疑問に感じた点を、GitHub discussion や TypeScript lead architect のインタビュー動画などから調べてまとめたものです。 移行の背景 今回 Go に移植される背景は、大規模な TypeScript コードベースをコンパイルする際のスピードの遅さにあります。 例えば VSCode のコードベース (150 万行) に対して tsc を実行すると、約 80 秒もかかります。 TypeScript のコンパイルは大きく以下の段階に分けられ、その内の check が特に複雑で重

    TypeScript の Go 移植に備えて知っておくべきこと
    shoh8
    shoh8 2025/03/19
    完全移植。RustではなくC#でもなくGoの理由
  • [K, U] extends [U, K] ← ナニコレ

    タイトルは初見時の自分の気持ちでした。内容は結構あっさりしたもので、5分あれば読めると思います。 「あーなるほどね」となった方はわざわざ読む必要がない記事っぽいです。 型の互換性チェック 一言で言ってしまえばそういうことです。KとUが互いに置き換え可能かどうかを確認しています。 これがKとUのままだと分かりづらいのですが、適当な型に置き換えてみると分かりやすいです。 type Test1 = [1, 1] extends [1, 1] ? true : false; // true type Test2 = [number, number] extends [number, number] ? true : false; // true type Test3 = [string, string] extends [string, string] ? true : false; // tru

    [K, U] extends [U, K] ← ナニコレ
    shoh8
    shoh8 2024/07/16
    かたぱずる
  • 決定版!イマドキの ESLint 設定! | DevelopersIO

    2021 年度版は Zenn に書きましたのでご覧ください。 ESLint 設定を作成する技術 そろそろ書かねばな、と思っていたところに必要としてくださる方がいらっしゃることがわかったので書きました。 eslint, eslint-plugin-prettier, typescript-eslintの組み合わせは僕の中では完全に鉄板になったんだけど、「決定版!イマドキのESLint設定!」みたいなタイトルの煽り記事を書く元気はないんだよな…… — なかざん (@Nkzn) June 1, 2020 2020 年 6 月現在のまとめです。 TL;DR 先にベースの完成形となる設定ファイルをおいておきます。 JSON に比べ YAML のほうが記述量が少なく構造が把握しやすいので YAML で書いています。次の内容をプロジェクトのルートディレクトリーに .eslintrc.yml として保存し

    決定版!イマドキの ESLint 設定! | DevelopersIO
  • 1