Drizzle has always been fast, we just wanted you to have proper benchmarks experience Well, actually it's not that Drizzle is fast, Drizzle just doesn't slow you down
最近、週末の趣味プロジェクトとして Cloudflare Workers(と Vercel Edge Functions)向けの Slack アプリ開発フレームワークを作りました。 私は普段 Slack の Developer Relations Engineer として Qiita の Slack チームの公式な記事を書いているのですが、この Cloudflare Workers 向けのものは業務で開発した公式ツールではなく、完全に個人プロジェクトなので、Qiita の Org ではなく Zenn に個人的な記事として書くことにします。 ・・・そして、書き終わってみると、随分と長い記事になってしまいました。興味のあるところだけでもぜひ読んでみてください。 この記事で説明するもの この記事では、Slack アプリ開発の基本と、以下のライブラリの使い方について解説していきます。 「Slack
TypeScriptの関数は1値のみ返却可能です。戻り値に複数の値を返したい時に、配列に返したいすべての値を入れて返すことがあります。なお次の関数の戻り値は定数になっていますが、実際は演算した結果だと解釈してください。
2022年4月に著書『プロを目指す人のためのTypeScript入門』が発売された鈴木僚太さん(https://twitter.com/uhyo_)。QiitaやTwitterでは「うひょ(uhyo)」さんとして、TypeScriptやフロントエンドの話題を中心にウェブ技術に対する踏み込んだ解説でも知られています。 著書ではあえて触れられなかったという「TypeScriptでウェブアプリケーションをどう書くか」という観点へのヒント、なぜそれを書かなかったのか、そして仕様や原理に立ち返って自ら考えることの楽しさについて、株式会社一休CTOの伊藤直也さん(https://twitter.com/naoya_ito)が聞き出します。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてな
コピーこれらのクラスは、walkメソッドを持つ点で似ています。このようなとき、Person型とDog型は「互換性がある」とみなすことができるでしょうか。それとも、まったく異なる型として扱うべきでしょうか。 こうした問題を扱うために、プログラミング言語はさまざまな型システムを採用しています。どのように型を区別すべきか、また、どのように型同士の互換性を判断するべきか、このような観点から型システムの仕様を考える必要があります。TypeScriptでは、「構造的型付け」という型システムが採用されています。構造的型付けがどのように型を区別し、逆にどのように型同士に互換性があると判断するのか、こうした言語仕様を知ることは、よいコードを書くために役立ちます。 型の区別に関する2つのアプローチプログラミング言語における型の区別や互換性の判定には、主に次の2つのアプローチが存在します。 名前的型付け構造的
Enum の代わりに union 型を使おうという風潮があるらしい TypeScript v3.4 から使えるconst assertionを用いると、使い勝手を損なわず Enum の代わりに union 型が使えるらしい Enum とは 列挙型とも呼ばれる TS にはあって JS には無いもの、他の言語(C、C#、Java とか)にもある 定数をひとまとめに定義できる enum Card { Clubs, // 0 Diamonds, // 1 Hearts, // 2 Spades, // 3 } const card: Card = Card.Hearts; console.log(card); // 2 上記のように値には連番が振られる 意味のある分かりやすい値をもたせたい場合は、文字列や任意の数値を設定することもできる enum Card { Clubs = "clubs", D
graphql-codegen と Nominal Typing(Branded Type) で Custom Scalar をちょっといい感じにする GraphQL では標準で用意されてる Int や String 以外にも、自前で Scalar を定義することができます(ここでは Custom Scalar と呼びます)。よくある用途としては日付を表す Date や日時を表す DateTime でしょうか。 type Profile { birthday: Date } scalar DateCustom Scalar をうまく使えば GraphQL スキーマでドメインを表現する力がかなり高くなるので、みんなで育てる共通言語としてはどんどん活用していきたいです。 一方で、Apollo CLI や GraphQL Code Generator(以下 graphql-codegen)で C
Usage Requirements In order to use this GraphQL Codegen plugin, please make sure that you have GraphQL operations (query / mutation / subscription and fragment) set as documents: … in your codegen.yml. Without loading your GraphQL operations (query, mutation, subscription and fragment), you won’t see any change in the generated output. This plugin generates React-Query Hooks with TypeScript typing
2021年にGraphQL Code Generatorを使うなら、TypedDocumentNodeを使おうTypeScriptGraphQLapollographql-codegen この記事は GraphQL Advent Calendar 2020 8日目の記事です。 前回の記事は @mtsmfm さんの GraphQL アンチパターン - 孫煩悩 - でした。 概要 TypedDocumentNode は、 GraphQL Code Generator を使って TypeScript のコードを生成するときの出力先のひとつで、 2020年7月に登場しました。 GitHub GraphQL Code Generator 公式ドキュメント 出力結果はただの DocumentNode オブジェクト(gql 関数にクエリを渡して得られるもの)ですが、 TypeScript のジェネリクス
現在、TypeScriptの重要性は、フロントエンド開発を中心としてますます増すばかりであります。それだけに、TypeScriptをどのように使うべきかという問題については多様な意見が見られます。 これまで筆者はTypeScriptの使い方に、特にコンパイラオプションの使い方について意見を散発的に発信してきましたが、このたび記事にまとめました。この記事では、特に次のような意見に対しての反対意見を述べます。 厳しいコンパイラオプションは型パズル愛好者のためのものであり、普通の人は細かいことを気にせず緩い設定でよい。熟練のJavaScript使いにはTypeScriptは必要ない。例え話最近はTypeScriptを補助輪に例えたりするのが流行っていますので、この記事でも例え話をしてみます。筆者の考えでは、TypeScriptというのは例えるならば料理人が使う包丁のようなものです。コンパイラオプ
Blog /tooling /Apollo Codegen /TypeScript GraphQL Code Generator – Generate GraphQL Types with Apollo Codegen Tutorial Back to Blog April 1, 2021TypeScript GraphQL Code Generator – Generate GraphQL Types with Apollo Codegen Tutorial Don Norman, the author of “The Design of Everyday Things” has a philosophy for what he believes constitutes good design. Don says that good design is primarily discove
Conditional Types TypeScript 2.8 introduces conditional types which add the ability to express non-uniform type mappings. A conditional type selects one of two possible types based on a condition expressed as a type relationship test: The type above means when T is assignable to U the type is X, otherwise the type is Y. A conditional type T extends U ? X : Y is either resolved to X or Y, or deferr
TypeScriptの世界を知る 前書き Node.jsエコシステムを体験しよう TypeScriptの書き方 変数 プリミティブ型 複合型 基本的な構文 基本的な型付け 関数 その他の組み込み型・関数 クラス 非同期処理 例外処理 モジュール console.logによるログ出力 中級のテクニック ジェネリクス ジェネリクスの書き方 ジェネリクスの引数名 ジェネリクスの型パラメータに制約をつける 型パラメータの自動解決 ジェネリクスの文法でできること、できないこと 型変換のためのユーティリティ型 オブジェクトに対するユーティリティ型 オブジェクトと属性名に対するユーティリティ型 型の集合演算のユーティリティ型 関数のユーティリティ型 クラスに対するユーティリティ型 any や unknown 、合併型との違い まとめ 関数型指向のプログラミング クラス上級編 リアクティブ 高度なテクニッ
はじめに jsで書いたreact,reduxのフロントをtsに徐々に移行していくにあたって、つまづいたところをまとめました。 もうすでにある程度の規模感のjsのコードだったため、一度に全てtsに置き換えていくのは現実的ではなく、jsとtsが共存するような環境を整える際の備忘録です。 環境 webpack 4 ts-loaderは何かtsファイルがないとエラーをだす 当たり前っちゃ当たり前な気がしますが、ts-loaderを入れただけでtsファイルが一つもないと以下のエラーが出ました。 https://stackoverflow.com/questions/41211566/tsconfig-json-buildno-inputs-were-found-in-config-file tsconfigのmodule こんなエラーが出ました。 Uncaught ReferenceError: e
JavaScriptの配列操作。 調べるのがいつも面倒なので、利用頻度の高いものをまとめました。 「もとの配列を変化させない」ことがポイント。 https://t.co/EXU0EoTK8L
This domain is registered at NameSilo. If you are the owner, start administering it at NameSilo.com. If this is not your domain, find similar names that work for you. This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it
はじめに あくまで一個人の意見なので絶対的な解ではないというのと、どっちをデフォルトに選んでも普通にアプリケーション開発してて困ることはほぼほぼないと思うので、そこまで気を揉むことでもない、ということだけ最初に述べておいて意見をしたためます。 TL;DR アプリケーション開発では基本的に type でおk Declaration merging したい時だけ interface ライブラリ開発のような使う側で拡張したい(Declaration merging したい)時は interface とりあえずチームでどっちをデフォルトにするかは統一しといた方が気持ちいい type と interface の違い 機能的にはそんなに大きな違いはなく、個人的に判断に関わるのは次の3つかなと思います。 interface では Declaration merging がされる。type ではされない
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く