質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1940閲覧

VSCodeでJavaScriptのインテリセンス機能がうまく働かない

hiroshi17

総合スコア1

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/08/17 03:10

前提・実現したいこと

VSCodeで記述したJavaScriptの関数やメソッド内でインテリセンス機能がうまく働かず候補が表示されないので表示されるようにしたい

該当のソースコード: 例1

関数内でstr.と入力した時点で本来ならsplitなどの候補が上がると思いますがそれが出ない
関数の外でa.とした時にはsplitの候補は出る
例2のコードに似ていますが、この場合はconsole.log(a.とした時点でsplitの候補が出る

JavaScript

1function f(str) { 2  return str.split(' '); 3} 4 5const a = "abc def"; 6console.log(f(a));

該当のソースコード: 例2

あくまでも例えですがconsole.log()の中に記述したいメソッドの候補が出るときと出ない時がある
同じメソッドでも出る時と出ない時があり違いが解らない

JavaScript

1const a = 2; 2const b = 3; 3 4console.log(Math.floor(2 / 3);

試したこと

Visual Studio IntelliCodeのインストール

以下を記述することで関数については回避できますが
これを全ての関数や変数に対して記述するのは現実的に無理がある状態です
/**

  • @param {string} str

*/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おそらくですが、function のパラメータstr の型を特定できないからではないでしょうか?
例えば、下記のように書き換えると補完が効くかもです。

javascript

1function a(str) { 2 const tmp = str + '' 3 return tmp.split(' ') 4}

const tmp = str + '' の部分で文字列にしているので、
型が決まり、補完候補を特定できると思います。

それと同様なのがJSDoc で、"試したこと" で試された内容になるかと思います。

もし可能であれば、パラメータの型を指定できるTypeScript を導入してみてはいかがでしょうか。
スパっと解決できる回答ではなくて、すいませんm(_ _)m

Visual Studio IntelliCode を利用して試してみました

投稿2021/08/17 11:53

tshion

総合スコア65

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hiroshi17

2021/08/17 23:43

回答ありがとうございます 言い忘れてたことがありました 関数のパラメーターstrに空文字なりの初期値を設定すれば回避できることは知っていました ただ、それも現実的ではないなと思いました VSCodeの設定の問題なのかなと思ったのですがtshionさんも同じ現象ということは言語の問題なのですね TypeScriptを検討してみたいと思います
tshion

2021/08/18 11:35

> 同じ現象ということは言語の問題なのですね はい、JavaScript で型を明示できないのが、今回の問題のような気がしております。 > TypeScriptを検討してみたいと思います はい、チャレンジしてみる価値はあると思いますので、頑張ってくださいm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問