takashiskiのブログ

覚書の殴り書き

JavaScript

JavaScript: ES5クラスのメンバの型をany推論させない

訳あってES6クラスもTypeScriptも使えない人向けです。 コンストラクタで宣言したメンバは代入値がプリミティブでもanyとして推論されてしまいます。 function ES5Class() { this.property = 'value'; } これはts-serverには単なる関数として解釈されるため…

JavaScript: JSDocを使って関数が返す無名オブジェクトのプロパティの型に名前を付ける

前提 エディタはVSCode ts-serverの力によるため やむを得ない事情で、どうしてもJavaScriptで頑張らないといけない 何故やるのか APIの応答値の一部を抜粋したものを扱うときに都合がいい APIの応答値の型が変わった際に、ReturnTypeで引っ張ってきていれば…

(javaScript)VSCodeで中身がわかる定数リストを作成する

VSCodeのマウスホバーで表示される推論結果の話です。 JavaScriptでもreadonly扱いにしてObjectを定数として認識させる方法です。 単純な書き方だと全部プリミティブ型に推論されてしまう const CONSTANTS = { AAA: 1, BBB: 2, CCC: 3 } Object.freeze()した…

非モジュールの複数ファイルに分割されたJavaScriptファイル間で型補完を行う

前提 非モジュールであること ESModuleやCommonJSモジュールではなく、scriptタグやgulpで結合する全てグローバルに存在する環境 VSCodeを使っていること jsdocが書いてあること やりかた 現在のファイルmain.jsに対して、同じ階層に型情報を読み込みたいフ…