suin

Results 71 issues of suin

## シンボル型はJSON.stringifyで情報がなくなる ```js JSON.stringify(Symbol("foo")); // @log: undefined ``` ```js JSON.stringify(["foo", Symbol("foo")]); // @log: '["foo",null]' ``` ```js JSON.stringify({ str: "foo", sym: Symbol("foo") }); // @log: '{"str":"foo"}' ``` ```js JSON.stringify({ [Symbol("foo")]: "bar"...

stage1:話し合い中

手っ取り早くこのQiitaを再利用してコンテンツを作る: [TypeScript: 配列型からその要素のユニオン型を導出する方法。例えば、ArrayからA | B | Cを導き出す。 - Qiita](https://qiita.com/suin/items/25588b2beba7a3fcce4f) ## 理由 - `type Element = List[number]`のイディオムは初見殺しなので。 ## 関連する既存ページ 下記のページからはこのページにリンクしたい - [インデックスアクセス型 (indexed access types) | TypeScript入門『サバイバルTypeScript』](https://typescriptbook.jp/reference/type-reuse/indexed-access-types) - [配列から型を生成する | TypeScript入門『サバイバルTypeScript』](https://typescriptbook.jp/tips/generates-type-from-array)...

コンテンツ追加が決定している

## 解決する疑問 - TypeScriptでキャストするにはどうしたらいい?(型アサーションではなく実行時に) ## モチベーション - 体験談: Javaのアップキャスト・ダウンキャストや、Scalaの暗黙の型変換など、言語によっては型変換のための画一的な機構があるので、もしかしたらTypeScriptにもそういうのがあるかもしれない、と最初模索したことがありました。 - キャストと型アサーションはしばしば対比関係になるので、本書でも説明しておくといいと考えました。 ## 場所 - [型アサーション「as」](https://typescriptbook.jp/reference/values-types-variables/type-assertion-as)の次くらいいがいい? ## 伝えること - 値の型によってやりかたは様々 - `` `${value}` `` - `Number()` - toString() - 型変換のための関数を実装する -...

stage2:着手可
volume:L
chapter:読んで学ぶ

https://typescriptbook.jp/reference/promise-async-await#promise%E3%81%A8%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AA%E3%82%AF%E3%82%B9 thx kaneda

改善したい表現

## 背景 @jamashita さんから次の提案がありました。 > (提案) unknown型、never型が「文」にあるのですが「値・型・変数」に移動してもいいですか? これは執筆に関わる人であれば、誰でも疑問になることだと思います。 ## やること 執筆者・編集者が次の疑問を抱かないように次のコメントを該当ページの冒頭に記載する。 追加するページ: https://typescriptbook.jp/reference/statements/unknown ```markdown ``` 追加するページ: https://typescriptbook.jp/reference/statements/never ```markdown ```

## 背景 - テンプレートリテラル型は一旦は「サバイバル知識」ではないという判断になった。(知らなくても実務にあまり支障がない、かつ、知ってても役立つ場面が少ない) - そのため、サバイバルTypeScriptでは取り扱っていない。 ## 論点1: テンプレートリテラル型は実務サバイバル知識か? テンプレートリテラル型は実務にあたって必須知識なのかどうかを以下の立場から議論します。 ### 主張1. 必須知識ではない ### 主張2. 読めるようになっておくべき ### 主張3. 読めて書けるようになっておくべき ## 論点2: 主張2-3の場合、テンプレートリテラル型の実用例は何があるか? - 主張2の場合: 実務にあたってよく使われる例は何があるか? - 主張3の場合: 実務で使うにあたって、身近な活用例は何があるか? ### 数値リテラルから文字列リテラルを導出する...

stage1:話し合い中

#242 でコンテンツ化するかを議論しましたが、賛成が多いのでコンテンツ化します。 ## タイトル - 記事タイトル: プライベートクラス機能とハードプライベート (hard private) - サイドバー: プライベートクラス機能 ... - 検索のために「ハードプライベート」もタイトルに入れていく ## URLと場所 - URL: https://typescriptbook.jp/reference/object-oriented/class/private-class-features-hard-private - 場所: 読んで学ぶ → オブジェクト指向 → クラス → プライベートクラス機能 (constructor...

アウトライン有
stage2:着手可
volume:L
chapter:読んで学ぶ

## 追加する理由 Babelなどのバンドラーと付き合うフロントエンド開発では、isolatedModulesの理解が必須になるため ## isolatedModulesはバンドラーのためにあるようなオプション - バンドラーを使わないならisolatedModules: false(デフォルト)で良い - Babelのようなバンドラーはtscを使わないので、tscほど型の全容を把握した上で処理してない。 - Babelのようなバンドラーはファイル1個1個、独立して処理する。(importをたどっていったりはしない) - そのため、型情報が他のファイルから来たものだと、型なのか値なのか分からず処理できない。 - isolatedModulesは、バンドラーが処理できない可能性をtscが忠告してくれる機能。 ## isolatedModulesと型の再エクスポート - TypeScriptでは型をexportできる - バンドラーは型のexportだけを消しながらトランスパイルする。 ```ts type T = any; export { T...

コンテンツ追加が決定している
アウトライン有

## 概要 主に企業を対象にスポンサーをGitHub Sponsorで募集する ## 目的 本プロジェクトが企業に支援されることで第三者承認的な効果を期待する ## 企業側のメリット - 広報面: オープンソースに関心が高い会社だとPRできる - 採用面: 本書を介してTypeScriptプログラマーの採用に寄与できる ## スポンサーシップの内容 - スポンサー企業のロゴを本書に掲載する - 金額に応じて、ロゴ表示の順やサイズが変わる - 金額設定は議論の余地あり ## 寄付金の受け取り - 寄付金の受け取りはStripeを使うため、人格がないとならないため、個人か法人にする必要がある - 税務面で個人で受け取るのは面倒なので、YYTypeScript主催の株式会社クラフトマンソフトウェアに受け口になってもらうことを考えている -...

記事分割のために用意しておいた下記ページを消します。 ## 理由 1. [Promise / async / await ](https://typescriptbook.jp/reference/promise-async-await)があるため、消しても問題ない 2. 記事分割するにしても、 #271 を踏まえてからやったほうがいいから