Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
タイトルの通りです。 普通(?)のオブジェクト型に対して一部のプロパティを取り出したり削除したりしたい時にはPickやOmitを使いますね。 ただPickとOmitはUnion typesに対して分配的には効きません(後述)。 そこでUnion typesに対して分配的にPickやOmitをする方法を考えていきます。 実際に作ろうと思ったときと同じ手順で説明していくので、これからGeneric typesを書いていきたい方の参考にもなればと思います。 結論 // 補助的な型 type KeyOfUnion<T> = T extends T ? keyof T : never; // 分配的なPick type DistributivePick<T, K extends KeyOfUnion<T>> = T extends T ? Pick<T, Extract<K, keyof T>> :
なんだかんだでTypeScriptを業務でも個人開発でも使うようになって3年くらいが経過しました。 TypeScriptは便利ですよね☕️ 世の中的にも、もはやTypeScript以外でフロントエンドの開発を行うことが珍しいくらいの雰囲気になってきたのではないかという感じがします。 最近というかTypeScriptを書き始めてしばらくした今、書き始めた当初とは意識することが変わってきたように感じています。 そういうわけで、今、どんなことを意識しているのかを自分の整理をこめて記載しておこうと思います。 🔥🔥🔥 型を先に定義する ここがかなり気持ちの上で変わった部分です。 TypeScriptで型を書くということは、つまるところ自分が今から記述するコードの設計図を書くということだという意識が強くなりました。 TypeScriptの型推論は非常に強力で、自分でほとんど型を定義しなくても、多
本書の目標は、本読者がNestJSをすぐに実務で利用できる(具体的に言えばNestJSで簡単なプロダクトを開発できる)ように、最短ルートに読者を導く一冊になることです。本書は、NestJSの網羅的なドキュメントではありません。取り扱う内容は頻出する機能に絞って、「実務でNestJSを扱うなら、最低限ここだけは理解しておこう」「これさえ押さえておけば実務でも安心できる」という観点で執筆しています。 本書はNestJSを中心に取り扱いますが、実務上、必要になる知識としてJavaScriptやTypeScriptの仕様やフロントエンドフレームワークのReactやVueについても扱います。
Next.js には組み込みのエラーフォールバック機構が存在します。pages/404.tsxとpages/500.tsx、Unhandled Error を捉えるpages/_error.tsxが組み込みフォールバックです。https://nextjs.org/docs/advanced-features/custom-error-page 実アプリケーションにおいてはこれだけでは不十分なケースが多く、意図的なもの・そうでないものをハンドリングしログ収集に繋げるなど、きちんとエラー設計をしたいところです。 TypeScript 4.4 で try catch の推論が変更になった 話が少しそれますが、TypeScript 4.4 で try catch 文の catch 引数errの推論がanyからunknownに変更になりました。この変更はuseUnknownInCatchVariab
お願いがあるのよ TypeScriptで扱うデータの型定義 大事に思うならば ちゃんと聞いてほしい Firestoreにpostするデータも 型定義無いのはまだ許すけど getしたデータ anyだからってアサーションしないで ※FirestoreとTypeScriptと私 永続層とコードの整合性と保守性のため 型安全保障しておきたいから※ unknown放置しないでね 未来のあなたのため 型安全でいさせて いつわらないでいて 女の勘は鋭いもの コンパイラに嘘を吐くとき 右の眉が上がる あなた無闇にasしたら 将来のコードに気を付けて 私は知恵をしぼって 総リファクタリングで一緒に逝こう ※繰り返し 本当はpostするときも型定義はしっかりしたいものですね。 はじめに フロントエンジニアとして活動させていただいております。 ふぁると申します! TypeScript、Vue.js、Reactを
ハイクラス求人TOPIT記事一覧「がんばらないTypeScript」のための現実的な設定を考える ─ 4レベルの厳しさを使い分けてTypeScript疲れを克服しよう! 「がんばらないTypeScript」のための現実的な設定を考える ─ 4レベルの厳しさを使い分けてTypeScript疲れを克服しよう! エンジニアHubでは2019年に「がんばらないTypeScript」を紹介しました。JavaScriptに静的型付けなどを提供するTypeScriptは、今では実プロジェクトに採用されるプログラミング言語になっています。そこで現実的なTypeScriptの設定を、藤吾郎(gfx)さんに解説してもらいました。 2021年の現在、TypeScriptの価値はますます広く認められるところとなり、多くのJavaScriptプロジェクトがTypeScriptで開発されるようになってきました。またT
2015年、とある休日 よめ太郎「あ・・・あんた!」 よめ太郎「こっち来て!!!」 ワイ「ど、どうしたん?」 ワイ「えらい大っきい声出して」 よめ太郎「娘ちゃんが初めて立ったんや!」 娘(0歳)「ヨチ・・・ヨチ・・・」 ワイ「おお・・・!」 ワイ「これはめでたいこっちゃ・・・!」 娘「・・・パパァ・・・」 ワイ「!?」 ワイ「いま、パパ言うたで!?」 ワイ「立ったと同時に言葉も喋れるんか!?」 ワイ「なんて末恐ろしい子や・・・!」 娘「・・・エテ・・・教エテ・・・」 ワイ「な、なんや喋っとるで・・・」 ワイ「なんや、娘ちゃん・・・?」 娘「・・・パパ・・・」 娘「・・・プログラミング・・・教エテ・・・」 ワイ「ファッ!?」 ワイ「Hello, World!でええか・・・?」 よめ太郎「いや、Hello, World!は産声で言うてたわ」 ワイ「せやった!」 ワイ「お医者さんが思わず・・・」
正式にサービスとして出すために、リニューアル中です!そのため、デモページを一時停止しております。リニューアル後のソースコードは全てOSSにし記事を書く予定です! この記事について 私が作ったWebアプリをオープンソース化したので、そのWebアプリがどのような形で作られているかを解説した記事です。 オープンソース化した理由としては、これからReact Hooksを導入する人やWebアプリを作ってみたい人などの参考になればと思いオープンソース化しました。 作ったもの 画像投稿ができるWebアプリです。 デモページ デモページ ソースコード 製作期間 三か月ほど 実装した機能 認証機能 画像投稿機能 いいね機能 フォロー機能 通知機能 使用したものなど React React-Router dayjs TypeScript Firebase Authentication Firebase Fir
こんにちは、SmartHR でフロントエンド開発を担当している @Tokky0425 です。 この記事では、私のプロダクトでの OpenAPI Generator を使ったフロントエンド開発の取り組みを紹介していきます。 目次 OpenAPI とは 「ラクラク分析レポート」の DX 上の課題 OpenAPI Generator とは 実際に generate してみる 生成ファイルを使ってみる 型情報を出力してみる 組み込み・運用の工夫 chokidar で監視する lint-staged に組み込む メリット・デメリット メリット デメリット まとめ OpenAPI とは OpenAPI とは、「REST API のドキュメントの記述形式を定めた仕様」のことを指しています。 簡単な例ですが、下記のような YAML ファイルがあるとします。 schema.yml paths: "/some
Query Builderを利用してSQLクエリを構築することができます。ここでは、基本的なSQLクエリ(SELECT, INSERT, UPDATE, DELETE)の構築方法を確認していきます。 QueryBuilderについて 使用方法 Connection Repository から QueryBuilder のインスタンスを取得できます。 また、QueryBuilderクラス を継承しているクラス( SelectQueryBuilder InsertQueryBuilder UpdateQueryBuilder DeleteQueryBuilder RelationQueryBuilder)が存在しており、それぞれ目的別に必要な機能が提供されています。 下記コードで確認します。 import { createConnection, getRepository } from 'ty
同じTypeScriptという言語を利用する場合においても、トランスパイラによってTypeScript自体の機能制限がかかったり、思わぬトラブルを招く場合があります。それぞれのトランスパイラの特徴を踏まえた上で、それにより生じる問題も見ていきましょう。 1-1. tsc TypeScriptの開発元であるMicrosoft純正のTypeScriptトランスパイラです。TypeScriptを利用する際に typescript パッケージをインストールする必要がありますが、それに同梱されています。 公式ツールなだけあって最も早く最新バージョンのTypeScriptに対応したり、言語すべての機能を利用することができる一方で、バンドラではないためminifyやchunkの設定はできません。また、Path Aliasesの未解決や旧ESへの互換性が不完全であることが欠点として挙げられます。 tsco
この記事は Recruit Engineers Advent Calendar 2019 の 23日目の記事です。 TypeScript のプロジェクトで React コンポーネントを書いていると、コンパイラに怒られることがたびたびあります。ネット上にあるサンプルコンポーネントが JavaScript で書かれていると、プロジェクトにもってきたときにコンパイルできないということはよくあるんじゃないでしょうか。any でコンパイラを黙らせることもできますが、せっかく TypeScript を使っているので、安全に解決したいよねってことでこのような記事を書きました。 型定義は @types/react@16.9.17 にしたがっています。目次をみて、この程度のことはもう知っているよという方は react-typescript-cheatsheet をみてください。React + TypeScr
WebXRでポートフォリオを作ろう/Let's make your portfolio with WebXR!
Blockchain Strategy Centerの中村です。 今回はrenopackerという社内Railsフロントエンドboilerplateの紹介をさせて頂きます。 GitHub - ga-tech/renopacker: Frontend boilerplate of Rails x webpack (default TypeScript & React) 丁度年始頃にMedPeer社さんが medpackerを公開されておりましたが、 弊社も社内で同じ様なアセットを自社で開発していたため、あやかって renopacker と名付けて公開させて頂きました。 (公開をご快諾頂いたMedPeerの村上さん (@pipopotamasu3)、ありがとうございました!) コンセプト renopackerも同様に webpackerを外して素のwebpackを利用 することを至上命題として
「TypeScript」とは、JavaScriptに「型」を指定できるオープンソースのプログラミング言語です。型によりプログラム実行前にエラーを見つけ出すことができるため、大規模なプロジェクトを安全に開発できます。Microsoft社製で、多くのフロントエンドエンジニアに採用されています。 TypeScriptのモダンなビルド環境を作るためにはwebpackやGulp.jsがよく使われていますが、設定ファイルが必要で学習コストは高めです。「TypeScriptのビルド環境がほしいだけなのに、なぜツールの設定に時間をとられるのか?」「TypeScriptを始めるときに苦労したくない」と思っている人も多いのではないでしょうか? 「Parcelパーセル」というツールを使うと、独自の設定ファイルを使うことなくTypeScriptのモダンなビルド環境がわずか3ステップで作れます。 ▼ TypeScr
React開発において個人的に便利だなーと思っているTypeScriptの型をだだーっとまとめてみました。私自身もまだまだTypeScript修行中の身ですので、新たに気づいたものがあったら随時追記していきます。みなさんも「こういう使い方できるぜ!」みたいなのがあったら、ぜひ教えていただければと思います。 対象とする読者 最近ReactにTypeScriptを導入し始めた人 ReactにTypeScriptを導入してそこそこ経つけど、いまいち使いこなせてる気がしない人 TypeScriptにあまり詳しくない人でもわかるように説明しているつもりではありますが、以下の記事がTypeScriptの入門用に素晴らしいので、そちらを先に読むとスムーズに読み進められると思います。 TypeScriptの型入門 Partial React開発においてよく定義する型としてコンポーネントのpropsの型があ
Transcript 3FBDU���5ZQF4DSJQUͷ ڥߏஙͱ࣮5JQT wTBLJUP !@@TBLJUP@@ � w'SPOU�&OE�&OHJOFFS� w3FBD XFCQBDL (BUTCZ+4� w&WFOU� w#POpSF�'SPOUFOE� w3FBDU�NFFUVQ� w*OTJEF�'SPOUFOE� *OTJEF�'SPOUFOE���ͷ$'1ืूதʂʂ IUUQT���EPDT�HPPHMF�DPN�GPSNT�E�F� �'"*Q2-4q17/@�435:#�OK%��5"(8CM,D�;6H�2W'Z�#G(X9q%��@H�WJFXGPSN ΞδΣϯμ wDSFBUF�SFBDU�BQQ� wBXFTPNF�UZQFTDSJQU�MPBEFS� wUT�MPBEFS� w!CBCFM�QSFTFU�UZQFTDSJQU� w࣮5JQTΛগʑ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く