
VSCodeにてJavaScriptを始めたばかりの物です
JavaScriptの関数内でインテリセンス機能が上手く働いていないのですが改善方法はありますか?
例えば以下のようなコードを書いた時にsplitが補完されません
関数の外では補完されます
また関数の外で1度でも使ったメソッドなどは関数内でも補完候補にあがります
おそらくメソッドとしてではなく過去の記述から候補にあげているだけのようです
function f(str) {
return str.split(' ');
}
const a = "abc def";
console.log(f(a));
No.5
- 回答日時:
No4です。
書いてから気が付いたのですが、
strが、文字列であるかどうかというのが、
No2さんのおっしゃる
>型とその説明が表記されてくる
ってことだったんですね。
大変失礼しました。
/**
* @param {string} str コメントにこれを書くと
*/
function f(str, str2) {
str.split(' '); // 出る
str2.split(' '); // 出ない
}
コメントを書くと、デフォルト値入れなくても出ました。
No.4
- 回答日時:
わたしの環境でもやってみました。
たぶんですが、splitが候補に出るためには、
strが文字列であることが分かっていないと
いけないのではないかと思いました。
const a = "abc def";
a.split(' ') // 出る
const b = 123;
b.split(' ') // 出ない(履歴には出る。以下同じ)
const c = [1,2,3];
c.split(' '); // 出ない
const d = {a:'aaa',b:'bbb'};
d.split(' ') // 出ない
文字列であることを明示するために、
デフォルト値を入れるとうまくいきました。
function f(str = 'abc def', str2) {
str.split(' '); // 出る
str2.split(' '); // 出ない
}
No.2
- 回答日時:
function f()の引数について、インテリセンスがきかないというお話でしたね。
JavaScriptはそもそも型定義はありませんので、何もしない状態ではインテリセンスは効きません。
画像のようにコメントを用意することで、呼出時にも型とその説明が表記されてくるし、関数内で仮引数を利用した時にも型を基準にインテリセンスが効きます。
仮引数の型や説明の他に、関数の説明、戻り値の説明も動作します。
ちょっと私が使っている拡張機能は違いますが、同じように動作すると思います。
型は、string, numberに限らず、オブジェクトの指定も可能です。
画像は恐らく小さく見えてしまうので、画像のURLをブラウザに貼り付けて拡大するなどして確認してみてください。
ほとんどのIDEでもコメントによってそういう動作をしてくれますので、
どんな言語でも正しくコメントを書くクセをつけるのがベター、ということですね。

>function f()の引数について、インテリセンスがきかないというお話でしたね
いいえ、違います
質問文をよくお読みください
>例えば以下のようなコードを書いた時にsplitが補完されません
通常なら
return str.s あたりまで打てばsplitと補完機能が働くはずが働かないという話で引数の話は一切していません
本来ならnaktacさんの提供していただいた画像の右上のようにstr.と打ったところでsplitが候補として出るはずです
それが関数内ではその機能が働かないという話ですね
ついでに言うなら関数の外ではその補完機能は働きます
画像まで編集していただけありがとうございました
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- JavaScript JavaScriptの即時関数の書き方 1 2022/11/29 09:52
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Java Java 配列<選挙> 4 2023/07/31 15:07
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- C言語・C++・C# スタックフレームの消滅 6 2023/05/20 12:33
- Excel(エクセル) 数列の数値補間 2 2022/10/27 16:38
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
Labelコントロールに数字を代入...
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
FEM解析の読み方は?
-
CALLされていないメソッドを見...
-
C# 演算 最大値 最小値 表現の仕方
-
Refreshメソッドの使い方
-
c#でVBのcall的役割を果たすコ...
-
JSPで<SELECT>の中にDBから持っ...
-
Strutsで「setterメソッドが見...
-
コマンドプロンプト実行後に画...
-
エクセルのマクロでプリンタを...
-
処理内容がほぼ同じメソッドの...
-
DBを扱う上でのclose()メソッド...
-
エクセルVBAにおけるON TIMEメ...
-
javaの中でaddElementは何ですか?
-
VB.NET2017 の IntelliSense に...
-
ByteArrayInputStreamを配列に
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
0歳児の指しゃぶりに関して
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
配列のメソッド
-
CALLされていないメソッドを見...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
Application.Wait の参照設定
-
C#.net Define文
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA でExcelを終了したい...
おすすめ情報
naktakさんへ
naktakさんの回答に対して私の理解不足でした
No.5さんの回答で意味が理解できました
申し訳ありません、謝罪します。