表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。

【番外編】ライトノベルで学ぶTypeScript超入門(小説家になろう版)~constアサーションの巻~

作者: 野宮諒

AV部の今年のクリスマス会の出し物は、なんとTypeScriptクイズ大会!

ネタを考えるメンバーに、部長である真琴はある提案をする。

12月の寒い日。

わがAV部でも部室にクリスマスの飾り付けを行い、一段落した。

そして真琴が考案した、近所の子供達へのプログラミング教育も兼ねた、クリスマスTypeScriptクイズ大会という出し物のネタづくりをメンバーと行っている。

「constアサーションの話もクイズのネタに入れるといいわね」

「なんだそれ、コンスとアサーション?」

「constアサーションは、変数や定数が再代入されないことをコンパイラに教えるって機能よ」

「それだったら、const aaa = "あああ"; みたいにしたら済むんじゃないか」

「そうね。でもそれがオブジェクトのプロパティだったら?例えばこんな例文……」

const item = {

name: "Xmas",

message: "メリークリスマス!",

};


item.message="メリークリトリス!";


console.log('name:',item.name);

console.log('name:',item.message);


「『メリークリスマス!』とmessageに入っているのに、『メリークリトリス』がメッセージに入ってしまってるな。っていうか、何だよメリークリトリスって……」

「ここで『メリークリトリス』の代入を阻止するには?って話なのよ」

真琴は俺のツッコミを無視して続ける。

「as constってのを付けることで、その阻止ができるわ」


const item = {

name: "Xmas",

message: "メリークリスマス!",

} as const;


item.message="メリークリトリス!";


console.log('name:',item.name);

console.log('name:',item.message);


これをコンパイルすると、こんなメッセージが出た。

cons.ts:7:6 - error TS2540: Cannot assign to 'message' because it is a read-only property.


7 item.message="メリークリトリス!";

~~~~~~~

Found 1 error in cons.ts:7


「messageがread-onlyだから、再代入ができないと言っているわ」

「なるほど、予期しない再代入を防ぐってことか。これもクイズネタに使えそうだな」

というわけで、AV部のクリスマスの出し物も上手くいくはず。

っていうか、子供達へのプログラミング教育でこんな例文いいのか?

まあよい、と思いながら俺は飲みかけのレッドブルを口に含んだ。



今回はTypeScriptの「constアサーション」についてのお話を紹介しました。

楽しんでいただければ幸いです。

それでは、良いお年を!

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ