
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
エクセルVBAで、条件に一致する...
-
エクセルVBAで、ユーザーフォー...
-
【sendkeysメソッドが動かずに...
-
ASP.Net ObjectDataSource4
-
javaで最前面表示はできますか?
-
JavaScriptでExcelのオートフィ...
-
エクセルのマクロでプリンタを...
-
FEM解析の読み方は?
-
vbaエクセルマクロ RemoveDupli...
-
Application.Wait の参照設定
-
エクセルVBAのInputBoxメソ...
-
JSPのメソッドサイズ制限について
-
ポストバック時のDatasourceバ...
-
VBA,ASPなどから呼び出せるDLL...
-
Labelコントロールに数字を代入...
-
中学のクラス数
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0歳児の指しゃぶりに関して
-
エクセルVBAで、条件に一致する...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
コマンドプロンプト実行後に画...
-
DataGridViewでセルクリックイ...
-
Labelコントロールに数字を代入...
-
final修飾子を使っているのに、...
-
ウィンドウを最前面にできません
-
配列のメソッド
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
メソッドをstaticにする、しな...
-
execute()
-
java 次の機能を有するメソッド...
-
PDFファイルから別ウィンドウで...
-
CALLされていないメソッドを見...
-
Excel : OpenTextメソッドが正...
-
C#で右からnカラム目に文字を挿...
-
eclipse-Tomcatでのデバッグに...
おすすめ情報
naktakさんへ
naktakさんの回答に対して私の理解不足でした
No.5さんの回答で意味が理解できました
申し訳ありません、謝罪します。