実現したいこと
以下(1)のような任意typeに対して、以下(2)のように初期値を指定する必要があります。
初期値を自動的に指定する事は可能でしょうか?
そもそも、初期値を定義しなくても良い方法はありますでしょうか?
初期値はnumberであれば0
, stringであれば''
のように、毎回同じ値を指定しているので毎回初期値を指定する事は面倒だと感じています。
- (1) 任意type
TypeScript
1type User = { 2 id: number; 3 name: string; 4};
- (2) 初期値を設定する必要がある
TypeScript
1const [user, setUser] = useState<User>({ 2 id: 0, 3 name: '', 4});
発生している問題
上記Userのように2つの要素だけであれば数が少ないので楽ですが、実際は多くのtypeが存在して、多くのuseStateが存在しています。
初期値はnumberであれば0
, stringであれば''
のように、毎回同じ値を指定しているので毎回初期値を指定する事は面倒だと感じています。
また、typeを変更した時、typeが複数ファイルで利用されている場合は全て修正する必要があり、とても面倒です。
初期値を自動的に設定する方法、または、初期値を定義しなくてよい方法を探しています。
または、そもそもの話として初期値を指定することを考えるのはアンチパターンになるのでしょうか?
みなさんはundefinedが前提でコードを書いていますでしょうか?
該当のソースコード
https://stackblitz.com/edit/vitejs-vite-vpsnw7?file=src%2FApp.tsx
試したこと
- typeに存在する全てのプロパティ名を
string[]
として取得して自動生成を試みましたが不可能でした
https://teratail.com/questions/4l8f3owrh9nvcd
補足情報(FW/ツールのバージョンなど)
- Visual Studio Code 1.81.1
- React.js 18.2.0
- TypeScript 5.2.2

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。