JavaScriptにて、オブジェクトのプロパティが補完されない...!
合ってるはずなのに、補完されないのなんで?と、ずっと思っていたんですが、今までスルーしてきてやっと調べたので、軽く備忘録がてら記録しておきます。
今回は、pool.query()が返すオブジェクトのプロパティ(InsertIdとか)がエディタで自動補完されないという現象でした。
JavaScriptは型情報がない
結論として、戻り値がJavaScriptのオブジェクト型で返ってくるだけみたいです。
そもそもJavaScript自体は、動的型付けなので、エディタ側は「このオブジェクトはどんなプロパティを持っているのか」を知る術がありません。
そのため、自動補完でプロパティが出てこないということでした。
TypeScriptでは、補完される
一方で、TypeScriptは、静的型付け言語なので、変数や関数の引数、戻り値に明示的に型を明示的に宣言でき、コンパイル時に型チェックが行われるらしいです。
型定義を使えば補完できるとのこと。
調べてみて
初心者なので、JavaScriptから始めよう!と思ってJavaScriptを使っていますが、
色々調べる中で、TypeScriptの便利さに気づき始めましたね。
JavaScript使わなかったら、気づけなかった部分なので、ここから始めて良かったです。