ブックマーク / zenn.dev/luma (1)

  • TypeScript: const n=1とconst n:1=1は何が違うのか、なぜ違うのか

    両者の違い エディタでホバーするといずれも 1 という型が表示され、一見同じことをしているように思えるかもしれません。しかし、これらは明確に違う型を持ちます。 その前に、すべての変数は、その変数の型とは別に、Type Narrowingという仕組みによって一時的に別の型として取り扱う機能があります。 それぞれ、仮に global type と narrowed type と呼ぶことにします。 すると、const n: 1 = 1 は (global type, narrowed type) = (1, 1) ですが、const n = 1 は (global type, narrowed type) = (number, 1) です。これは以下のようなコードで確認ができます。 const n: 1 = 1; const getN = () => n; // inferred as () =

    TypeScript: const n=1とconst n:1=1は何が違うのか、なぜ違うのか
    tech0403
    tech0403 2022/06/11
  • 1