Documentation · TypeScript
Introduction - TypeScript Deep Dive
Introduction - TypeScript Deep Dive 日本語版
{[key: string]: number}
async (x:string):number=>{...}
const x:T = y
const x = y as T
Documentation · TypeScript
Introduction - TypeScript Deep Dive
Introduction - TypeScript Deep Dive 日本語版
TypeScriptの型
まとめ
interfaceのような名前のついた型ではツリーの定義などは前からできた
3.7からtype aliasでも一部のケースで出来るようになった
しかし今回やりたかったような方法での再起的定義はできない
ReactNをTypeScriptで使うときにArgument of type '"a"' is not assignable to parameter of type 'never'.が出たのを、マニュアル読まずにフィーリングで直したら、実は直ってなかったので、正しい直し方をメモ。
TypeScriptの型
useGlobalに型指定を付けたらコンパイルエラーがなくなったのでそれで良いのかと思ったら、型がおかしくなっていて後から問題が起きた。
TypeScriptの型
VSCodeの自動インデントで比較的まともな見栄えにならないかなと少し工夫してみた
次はこれからanyを消すパズルです
うーん、素朴にやったら謎の型ができてしまった
Argument of type
TypeScriptの型
元ネタ https://twitter.com/teramotodaiki/status/1214149145935532033
key
get2
keyof typeof obj
=== "s" | "f"
なので
TypeScriptの型
TypeScriptの型
TypeScriptの型の情報で例えば「英数字のみからなるidを持つ」って定義できる? src
ってのを見て、そういえばどうやるんだろうなと思って調べたのでメモ
この種のニーズって要するに構造的型付けのTypeScriptにおいて、データの構造としては既存のStringを使いつつ、値の範囲を制限して、その値の集合に別の名前をつけたい、Nominal Typingしたい、ということかと思う。
TypeScriptの型
T1 extends T2 ? F<T1> : never
similar to f(t1 as T2)
circularly references
{0: T1}[T extends any ? 0 : 0]
TypeScriptの型
5 * 6 == 30 はできるけど 6 * 7 == 42 はできない
TypeScriptの型で虫食い算を解く
1~3の相異なる値で、T1 + T2 = T3を満たすものを見つける、という簡単な問題
数は二進法表記して加算を1ビットの論理演算で構築
チャーチ数使おうとしてTypeScriptは型を再帰的に定義できない?の罠にハマった
条件式の表現はanyかneverを返す形にした
TypeScriptの型
console.log(state)
become more useful
@cloud10designs: 新卒にTypeScriptを教えているんだけど、タイプガードがそもそも「潜在的なランタイムエラーを守るためのもの」という認識が薄い。「TSに怒られるからタイプガードする
@cloud10designs: TypeScriptしか書かないなら「TSに怒られるから」でもある程度はやっていけるんだろうけど、そのタイミングだったり、もっと手前で処理を施すことによってそもそもタイプガード
元タイトル「anyをunknownに変える」
変えた結果、8〜9割のanyはunknownの状態に留まらなかったのでタイトルを変えた。
---
TypeScriptで手抜きしてanyを使っている箇所って「自分の書いたコードだけど型をきちんと書くのが面倒だからanyにしてる」って場合と「サードパーティのライブラリからやってくる値で、型がなんなのか調べるのが面倒だからanyにしている」ってケースがある。
例えば後者の例で、Firestoreから取ってきたドキュメントオブジェクトの型がよくわからないのでanyにしていた。
TypeScript
TypeScriptでの辞書的オブジェクトの扱いがわからなくて試行錯誤した。
まずJavaScriptのMapとObjectを正しく区別することが大事
Map - JavaScript | MDN
MapとObjectはどちらもKey-Valueの辞書的振る舞いをする
TypeScriptをnode.jsで動かす
v11.14.0
v13.9.0
tsconfig.json
これで動くようになったのだが、umdとかの方が良いのだろうか?
2019年に作ったRegroupの要素技術をまとめる: pRegroup-done-2019
cf. 2020 年、 React 軸で学ぶべき技術
TypeScript+React+Webpack
TypeScript: Visual Studio Codeで型情報を使って補完やミスの検出がされるので生のJavaScriptより圧倒的に良い
TypeScript再入門「がんばらないTypeScript」で、JavaScriptを“柔らかい”静的型付き言語に(gfx執筆) - エンジニアHub|若手Webエンジニアのキャリアを考える!
2020 年、 React 軸で学ぶべき技術
良いまとめ
TypeScript+React+Webpack
ServiceWorker のベストプラクティスを Google が実装したのが、 Workbox
小さな静的ウェブサイトを作った時に便利なのが Netlify
TypeScriptで簡単にChrome Extensionを作る方法 - Qiita
TypeScriptでChrome拡張 #Chrome_Extension
こんな感じですかね。 Redux+TypeScript
pRegroup-done-2019
問題を再現する最小限のコード
エラー
Type 'X' is not assignable to type '"A"'.
Type '"B"' is not assignable to type '"A"'
解決方法
React TypeScript
create-react-appした時に自動で'--isolatedModules'フラグがつく
新しいtsファイルを作成した時にこのエラーが出るようになる
これはこのファイルが何もexportしてないため
モジュールとして適切でなく、たんなるnamespaces