並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 23 件 / 23件

新着順 人気順

optional nullable typescriptの検索結果1 - 23 件 / 23件

  • 外からやってくる値から TypeScript の型を守るライブラリ・ツールまとめ - Mobile Factory Tech Blog

    こんにちは、新卒エンジニアの id:d-kimuson です 先日 type-predicates-generator という型定義からユーザー定義型ガード・アサーション関数を自動生成するツールをリリースして紹介記事を書いたのですが、感想とかを眺めていたら同じく外部から来た値に安全な型付けをするためのライブラリやツールの情報をいくつも観測しました この辺りのランタイムチェックライブラリの情報ってあまりまとまっていない印象で自分が知らないものもいくつかあったので、調べつつ簡単にまとめられたらなと思ってこのエントリを書きました 外部からやってきた値を型安全にするにはざっくりと 型生成によるアプローチ ランタイムチェック用の独自型を書かせるアプローチ 型情報からランタイムチェック関数を自動生成するアプローチ の 3 つのアプローチがあると思うので、それぞれのアプローチごとに紹介します ① 型定義

      外からやってくる値から TypeScript の型を守るライブラリ・ツールまとめ - Mobile Factory Tech Blog
    • GraphQL Code Generator(graphql-codegen) おすすめ設定 for TypeScript

      GraphQL Code Generator v3 以降で標準となった Client preset では設定が大きく異なります。 この記事は Client preset を使わない前提の内容になっているため、注意が必要です。 Client preset 用の設定は別記事で紹介します。 全体 生成物をフォーマッタにかける graphql-codegen には Lifecycle Hooks という仕組みがあり、いくつかの用意された hook ポイントで任意のコマンドを実行できる。 これを使って生成されたコードを Prettier 等のフォーマッタに通しておくのがおすすめ。 基本 DO NOT EDIT とはいえ、コードジャンプしてきて生成された型を読みたいケースはよくある。 そういうときのために、人間が見やすいように改行しておいてもらうといい。 typescript plugin, type

        GraphQL Code Generator(graphql-codegen) おすすめ設定 for TypeScript
      • Reducing tool calling error rates from 15% to 3% for OpenAI, Anthropic, and Google Gemini models - Mastra Blog

        Reducing tool calling error rates from 15% to 3% for OpenAI, Anthropic, and Google Gemini models We recently built a tool compatibility layer that reduced tool calling error rates from 15% to 3% for 12 OpenAI, Anthropic, and Google Gemini models, across a set of 30 property types and constraints. Background Mastra is a TypeScript agent framework. When a user is doing tool calls that accepts some i

          Reducing tool calling error rates from 15% to 3% for OpenAI, Anthropic, and Google Gemini models - Mastra Blog
        • typescript-generatorを利用して、HTML に埋め込んだ JSON データをフロントエンドで型安全に扱う - Cybozu Inside Out | サイボウズエンジニアのブログ

          こんにちは!kintone フロントエンドリアーキテクチャチーム (フロリア) の西川 @nissy_dev です。 最近のフロントエンド開発で導入されることの多い TypeScript ですが、開発期間の長いプロジェクトに導入する際にはバックエンドとの結合部分の型定義をどう扱うかが問題になる場合があると思います。 今回の記事では、フロリアで取り組み始めた、HTML に埋め込んだ JSON データをフロントエンドで型安全に扱う施策について紹介します。 フロリアのプロジェクトの詳細については、 @koba04 が書いた次の記事をご覧ください。 blog.cybozu.io 目次 フロリアでのバックエンドからのデータ取得 HTML に JSON データを埋め込む方法の問題点 Java のクラスから TypeScript の型定義を生成できる typescript-generator types

            typescript-generatorを利用して、HTML に埋め込んだ JSON データをフロントエンドで型安全に扱う - Cybozu Inside Out | サイボウズエンジニアのブログ
          • GoとテストとSDKとGCP - KAYAC Engineers' Blog

            SREチーム(新卒)の市川恭佑です。これはKAYAC Advent Calendar 2022の9日目の記事です。 今年の弊社アドベントカレンダーは、筋肉やランニング、さらにはサウナなど、多様性に富んだ面白いエントリが出揃っています。 自分も好きなファッションについて書きたくなってしまったのですが、ここはグッと気持ちを抑えて、仕事で触った技術について書きます。 ※ この記事のタイトルは、酒とゲームとインフラとGCPというイベントのオマージュです。 仕事の近況報告 まず、最近どんな仕事をしているのかについて報告させてください。恐らく誰も興味がないと思いますが、年末のアドベントカレンダー企画ということもあるので...... Amazon Web Services(AWS)を用いた自社サービス 今年の4月に新卒入社してから、技術ブログを2本執筆しました。下記がそのリンクです。 techblog.

              GoとテストとSDKとGCP - KAYAC Engineers' Blog
            • TypeScript使いの憂鬱:never型はプロパティを持つか | 雑記帳

              never型とプロパティアクセス TypeScriptにはneverという型があります。先日も記事にしましたが、簡単に言うとこれは「値を持たない型」です。 never型は、あらゆる型に対してその部分型として振る舞います。例えば、never が number の部分型であることは次のコードでわかります: type T<U extends number> = {}; type A = T<string>; // stringはnumberの部分型ではないのでエラー type B = T<never>; // neverはnumberの部分型なのでコンパイルが通る さて、部分型関係と、「その型の式に対してできる操作の集合」の関係について考えましょう。あまり面白い例を思いつかなかったのでアレですが、次の型を考えます: type UserInfo = { name: string }; type D

              • Rubyの型アノテーションの現状についていくつか思うこと(翻訳)|TechRacho by BPS株式会社

                概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A few words on Ruby's type annotations state 原文公開日: 2023/05/05 原著者: zverok 参考: 週刊Railsウォッチ20230531: Rubyの型アノテーションの現状についていくつか思うこと ...を軍の訓練施設で書いているうちに、ついつい5,000ワードになってしまった。 今これをスマホで書いている、それもウクライナ軍の訓練施設にある、200人を越える戦友たちと過ごしている兵舎で。もっぱら訓練と訓練の合間の短い時間(たいてい夜と日曜だが)をこの作業に当てている。 率直に言うと、軍に入隊して以来、まさかRubyについて何か書く時間やインスピレーションを得られるとは思ってもみなかったが、今ここでこうして書いている。 最近、Redditの/r/rubyで興味深い長大な議

                  Rubyの型アノテーションの現状についていくつか思うこと(翻訳)|TechRacho by BPS株式会社
                • Announcing TypeScript 4.8 - TypeScript

                  Today we’re excited to announce the release of TypeScript 4.8! If you’re not yet familiar with TypeScript, it’s a language that builds on JavaScript and adds syntax for types. These types let you put your expectations and assumptions into your code, and those assumptions can then be checked by the TypeScript type-checker. This checking can help avoid typos, calling uninitialized values, mixing up

                    Announcing TypeScript 4.8 - TypeScript
                  • TypeScript一人カレンダー 2022 目次と索引

                    こんにちは、クレスウェア株式会社の奥野賢太郎 (@okunokentaro) です。本記事は『TypeScript 一人 Advent Calendar 2022』(TypeScript一人カレンダー) の目次と索引ページです。 本アドベントカレンダー内の各記事では、2022年12月、TypeScript 4.9の時点で解説しています。本アドベントカレンダーのすべての記事は、TypeScript初心者を脱し始めてもっと活用していきたいと願う読者層に向けていますので、最低限の前提は省略して記述しています。 目次 第1部 Conditional Types 1日目 ReturnType<T> Utility Types ReturnType<T> どんなときに便利? 例1 例2 注意点 2日目 Awaited<T> Awaited<T> どんなときに便利? 例1 例2 3日目 inferと実例

                      TypeScript一人カレンダー 2022 目次と索引
                    • Announcing TypeScript 4.8 Beta - TypeScript

                      Today we’re announcing our beta release of TypeScript 4.8! To get started using the beta, you can get it through NuGet, or- use npm with the following command: npm install -D typescript@beta You can also get editor support by Downloading for Visual Studio 2022/2019 Following directions for Visual Studio Code. Here’s a quick list of what’s new in TypeScript 4.8! Improved Intersection Reduction, Uni

                        Announcing TypeScript 4.8 Beta - TypeScript
                      • April 2023 (version 1.78)

                        Update 1.78.1: The update addresses this security issue. Update 1.78.2: The update addresses these issues. Downloads: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap Welcome to the April 2023 release of Visual Studio Code. There are many updates in this version that we hope you'll like, some of the key highlights include: Accessibility improvements - Better scre

                          April 2023 (version 1.78)
                        • viteでreact(or preact)+typescript(+tailwindcss)な開発環境を構築 | DevelopersIO

                          吉川@広島です。 最近viteが非常に快適でハマって(良い意味の方)おり、ReactとPreactの環境構築を試してみたので備忘録がてら紹介します。 Getting Started | Vite viteには npm init vite@latest my-vue-app -- --template vue のように自分で設定することなくscaffoldする機能があるのですが、今回はこれを使わずに構築する手順を共有したいと思います。 環境 node 15.11.0 yarn 1.22.10 npm 7.18.1 vite 2.4.4 プロジェクト作成 ディレクトリを作って入ります。 mkdir my-app cd my-app 必要パッケージのインストール react, react-dom (or preact) vite (+ @vitejs/plugin-react-refresh o

                            viteでreact(or preact)+typescript(+tailwindcss)な開発環境を構築 | DevelopersIO
                          • Rails: Inertia.jsでRailsのJavaScript開発にシンプルさを取り戻そう(翻訳)|TechRacho by BPS株式会社

                            はじめに フロントエンド開発周りの騒ぎは、何年経っても一向に止みそうにありません。どこの開発会社を覗いてみても、目にするのは同じような悲しい出来事ばかりです。優秀な開発者たちが必要もないツールの山で溺れそうになりながら問題を解決しようと悪戦苦闘してます。しかもそれは、誰かさんが売り込んできたソリューションを導入するまでは起きていなかったはずの問題なのです。 私もこの業界に長くいるので、パターンはあらかた心得ています。まず、React、Vue、Angular、Svelteの中からお好きなものをお選びくださいと持ちかけて、エコシステムを分断します。そして、こちらの頭がぼうっとするほど選択肢を増やしに増やしまくります。そして最後に、元の問題より高くつく「専門家によるソリューション」にたどりつくという流れです。 Railsコミュニティはまさにその実例です。DHHは長年の間複雑さと戦い、「No Bu

                              Rails: Inertia.jsでRailsのJavaScript開発にシンプルさを取り戻そう(翻訳)|TechRacho by BPS株式会社
                            • Announcing TypeScript 4.8 RC - TypeScript

                              Today we’re excited to announce our Release Candidate (RC) of TypeScript 4.8. Between now and the stable release of TypeScript 4.8, we expect no further changes apart from critical bug fixes. To get started using the RC, you can get it through NuGet, or use npm with the following command: npm install -D typescript@rc You can also get editor support by Downloading for Visual Studio 2022/2019 Follow

                                Announcing TypeScript 4.8 RC - TypeScript
                              • ダウンタイムなしにGraphQLのMutationから引数を削る方法 - LayerX エンジニアブログ

                                こんにちは!バクラク事業部の@ysakura_です。バクラクビジネスカードを担当しています。 先日、GraphQLのMutationから引数(InputのField)を削りました。その際、ダウンタイムを発生させない様に複数回に分けてリリースを行いました。GraphQLでのNullの扱いに少し苦労をしたので、その知見を共有出来ればと思います。 この記事は、LayerX Tech Advent Calendar 2022 8日目の記事です。 動作環境 担当するプロダクトでは、GraphQLのライブラリとしてBE(バックエンド)では gqlgen、FE(フロントエンド)では Apollo Client を (React + TypeScript) の構成で用いています。 また、GraphQLのスキーマはバックエンドのレポジトリで管理しています。 サンプルスキーマ Mutationの引数のInpu

                                  ダウンタイムなしにGraphQLのMutationから引数を削る方法 - LayerX エンジニアブログ
                                • Dart/Flutterのnull safety対応ベストプラクティス

                                  Photo by Nick Fewings on UnsplashDartは、2021年3月リリースのバージョン2.12にてnull safety対応されました。同時期にFlutter 2.0もリリースされ、それにDart 2.12が同梱されました(2021年12月現在の最新はFlutter 2.8.1/Dart 2.15.1)。 そこからしばらく経ちましたが、自分が書いてきた経験や巷のコード眺めて感じたことを踏まえて、ベターなnull safetyの扱いについて書いていきます。 前提として、null safety を有効にするには、 pubspec.yaml にて以下のように指定する必要があります。 environment: sdk: ">=2.12.0 <3.0.0" // 最低でも2.12.0以上下限は、可能な範囲上げておくと最新の言語機能を使えて良いです。例えばFlutter st

                                    Dart/Flutterのnull safety対応ベストプラクティス
                                  • Fastifyで作るAPIにZodでスキーマバリデーションをかけながら型定義と実用レベルのOpenAPI仕様を自動生成する | DevelopersIO

                                    Fastifyで作るAPIにZodでスキーマバリデーションをかけながら型定義と実用レベルのOpenAPI仕様を自動生成する REST APIを作成する際、OpenAPI仕様のYAMLを手書きするのは面倒ですよね。Zodで定義したバリデーションスキーマから、型定義やOpenAPI仕様を業務で使えるレベルで出力する方法を探ってみました。 こんにちは。CX事業本部Delivery部MADグループのきんじょーです。 最近Fastifyをよく触っています。 Expressのように軽量フレームワークですが、デフォルトでasync/awaitによる非同期処理をサポートしており、プラグイン形式でさまざまな機能をエコシステムから追加できる方式がとても使いやすい印象です。 FastifyでREST APIを開発する際に、Zodで定義したバリデーションスキーマを正として、それを元に型とOpenAPI仕様書と生成

                                      Fastifyで作るAPIにZodでスキーマバリデーションをかけながら型定義と実用レベルのOpenAPI仕様を自動生成する | DevelopersIO
                                    • Announcing typescript-eslint v6 | typescript-eslint

                                      typescript-eslint is the tooling that enables standard JavaScript tools such as ESLint and Prettier to support TypeScript code. We've been working on a set of breaking changes and general features that we're excited to get released! 🎉 We'd previously blogged about v6 in Announcing typescript-eslint v6 Beta. This blog post contains much of the same information as that one, but updated for changes

                                        Announcing typescript-eslint v6 | typescript-eslint
                                      • Zodのドキュメントを読みながら自分用にメモ - Mitsuyuki.Shiiba

                                        基本的なことは大丈夫なのでざっと読んで気になったところだけをメモしておく。使ってるときに「そういえばこんな機能がZodにあった気がする」って頭の中で引っかかるように。 視点としては、Webアプリケーションのサーバーサイドを作る頭で読んでる。フレームワークを作る頭とかではない。 Coercion コンストラクタ関数を噛ませて変換するやつ。 z.coerce.string() Literals 忘れたりはしないだろうけどメモ z.literal("tuna") Strings datetime ZodStringにくっついてくる。タイムゾーン有無・精度・ローカルとかある。 const schema = z.string().datetime({ local: true }); schema.parse("2020-01-01T00:00:00"); // pass datetime以外に、da

                                          Zodのドキュメントを読みながら自分用にメモ - Mitsuyuki.Shiiba
                                        • LSP: the good, the bad, and the ugly

                                          For a few years now I have been working on the Haskell Language Server (HLS), and the lsp library for the LSP protocol and writing LSP servers. Unsurprisingly, I have developed some opinions about the design of the LSP! Recently I gave a talk about HLS and LSP at the Haskell Ecosystem Workshop at Zurihac 2024. One slide featured a hastily-written table of “LSP: the good, the bad, and the ugly”. As

                                          • James Shore: Testing Without Mocks: A Pattern Language

                                            Automated tests are important. Without them, programmers waste a huge amount of time manually checking and fixing their code. Unfortunately, many automated tests also waste a huge amount of time. The easy, obvious way to write tests is to make broad tests that are automated versions of manual tests. But they’re flaky and slow. Folks in the know use mocks and spies (I say “mocks” for short in this

                                            • GTF :: Why Haskell?

                                              “Impractical”, “academic”, “niche”. These are a few of the reactions I get when someone discovers that my favourite programming language is Haskell, and not only my favourite in some sort of intellectually-masturbatory way, but favourite for building things, real things, mostly involving web servers. Hobby projects would be one thing, but it gets worse: I have actual teams at Converge working in H

                                              • NonNullable<T>と実例 assertExists() / TypeScript一人カレンダー

                                                こんにちは、クレスウェア株式会社の奥野賢太郎 (@okunokentaro) です。本記事はTypeScript 一人 Advent Calendar 2022の17日目です。昨日は『intrinsicとは そしてUppercase<T>』を紹介しました。 NonNullable<T> TypeScriptでは、Null- and undefined-aware typesという機構があります。これはTypeScript 2.0にて--strictNullChecksオプションと同時に実装され当時驚きを集めました。それまではstringやnumberといった基礎的な型は検証できても、undefinedやnullのリスクについては従来のECMAScriptを書く場合と変わらなかったためです。4.9である現在はこのエピソードはただの昔話であり、TypeScriptでundefinedやnull

                                                  NonNullable<T>と実例 assertExists() / TypeScript一人カレンダー
                                                1