2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

yuriacatsAdvent Calendar 2022

Day 19

特定の文字列以外が来てほしくないしエディターに強制してほしい!

Posted at

特定の文字列以外が来てほしくないしエディターに強制してほしい!

そう思ったことは、人生で1度や2度ではないはずです。

フィールドを全部Read Onlyにするas constと型定義で実現することができますよ

  • 宣言時から変更・更新されないことが保証される。
  • ReadOnlyな要素は型として指定することができる! ☜ これが嬉しい

宣言のやり方

const YousoList = [
    "要素1",
    "要素2",
    "要素3",
    "要素4",
] as const
export type yousoType = typeof YousoList[number];
// 以下と同値になる
export type yousoType2 = "要素1" | "要素2" | "要素3" | "要素4" ;

直接 |でつなぐものとas constの違い

  • Enum的な挙動をする型にはliteral-typesと呼ばれるものがある。
  • これは、特定の文字列で型を判断することができる機能である。
  • as const導入前にこれをやろうとすると型定義の変数と実際に使う変数の2か所を変更しなければならず大変だった。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?