empty は素直に null(または undefined)を使うべきで、むしろ「ダミー値をセット」というのはやっちゃいけない行為になります。
例えば以下のコードですが、f() は必ず有効な Content の値を返すことになってるので、無条件で c1.name にアクセスできますが、g() は null かもしれないので c2.name にアクセスするには null チェックが必要になります。
これを、「id が 0 だったら無効なオブジェクトだから name にアクセスしてはいけない」という独自ルールを入れると、せっかくの TypeScript の型チェックが無意味になってしまいます。
TypeScript
1interface Content {
2 id: number;
3 name: string;
4}
5
6function f(): Content {
7 return { id: 1, name: 'foo' };
8}
9
10function g(): Content | null {
11 return null;
12}
13
14const c1 = f();
15console.log(c1.name);
16
17const c2 = g();
18if (c2 !== null) {
19 console.log(c2.name);
20}
ちなみに、Visual Studio Code なら、型的に問題のあるコードはすぐにその場で指摘してくれるので便利です。(特に設定したかどうかは憶えてませんが、確か tsconfig.json が必要だった気はします。あと、.eslintrc を設定するとさらに便利?です。)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/03/29 08:49