タグ

ブックマーク / zenn.dev/uhyo (3)

  • 王道か邪道か? タイムスタンプによるステート管理

    Reactによるステート管理では、ある状態が変化したら付随して他の状態も変化してほしい場合があります。例えば、次のような場合を考えます。 チェックボックスが1つある。 チェックボックスの初期状態は、HTTP APIから取得したデータによって決まる。 ユーザーはチェックボックスを操作できる。 APIからデータを再取得する場合があり、その場合はチェックボックスの状態が再取得されたデータに従ってリセットされる。 皆さんは、このような要件をどのように実装するでしょうか。 やりがちな実装 まず、やりがちな実装を見てみましょう。 const apiData = useApiData(); const [isChecked, setIsChecked] = useState(false); useEffect(() => { setIsChecked(apiData.isChecked); }, [ap

    王道か邪道か? タイムスタンプによるステート管理
  • any、またお前か——配列とhomomorphic mapped typeの罠

    TypeScriptは企業によって開発されてはいるもののなかなか大きなOSSの一つであり、openなissueの数はこの前5,000を超えました。日々いくつものissueが作られ、そして一部は閉じられていきます。TypeScriptはなかなか大きなOSSですから、issueが閉じられなかったとしても厳しい行く末を迎えるものは多くあります。TypeScriptチームが興味をそそられなかったならば、提案はSuggestionラベルとAwait More Feedbackラベルが与えられ、たとえ100を超える👍を得ようとも、奇跡でも起きなければ二度と掘り起こされることはありません(奇跡というのは、数年後にAndersさんが気まぐれにTypeScriptおもしろい新機能を実装してそのついでに解決されるといったことを指します)。また、バグに関しても喫緊でないものはbugラベルをつけられてBack

    any、またお前か——配列とhomomorphic mapped typeの罠
    rryu
    rryu 2021/10/13
    元の配列型の要素数は保ちつつ個々の要素の方だけが異なる型を作るhomomorphic mapped typeにanyが指定された時の罠について。
  • TypeScript 4.2 と 4.3 で起こった“最弱の更新”

    TypeScript 4.3 の RC が先日登場し、正式リリースが近づいてきていますね。そこで、この記事では TypeScript 4.2 から 4.3 にかけて発生した“最弱の更新”とも言える出来事、そしてそれによって起こったベストプラクティスの変化を紹介します。 TypeScript 4.2 でコンストラクトシグネチャの abstract 修飾子の追加 コンストラクトシグネチャ (construct signature) とは、コンストラクタ、すなわち「newできる関数」を表す型システム上の概念です。TypeScript 4.2 からは、コンストラクトシグネチャにabstract修飾子を付けることができるようになりました。 // 普通のコンストラクトシグネチャを持つ関数オブジェクト declare const foo: new (arg: number) => unknown; co

    TypeScript 4.2 と 4.3 で起こった“最弱の更新”
    rryu
    rryu 2021/05/18
    最も制約の弱い型としてunknownがあるが具象型のみなので抽象クラスが指定できるようになったことでさらに制約の弱い型指定が増えたという話
  • 1