私はVisual Studio Code 1.11.1を使用しています。次のコードについてはVisual StudioコードJavaScriptオブジェクトのプロパティでIntellisenseが機能しない
、インテリセンスがキャンバス変数の型であることを理解し、正しく動作HTMLCanvasElement:
実際にvar canvas = document.getElementsByTagName('canvas')[0];
、私はその変数の名前は、ドットそれに続く書き込みHTMLCanvasElementのすべてのプロパティとメソッドを表示します。
しかし、私は(名前空間として機能する)オブジェクトの内部でその変数をラップする次のコードを使用して、インテリセンスは、変数の型のHTMLCanvasElementであることはもう理解していない:
// create a namespace "App"
var App;
App = {};
App.canvas = document.getElementsByTagName('canvas');
「App.canvas」の後ろにドット文字を書くと、Intellisenseはすべてのプロパティとメソッドを表示しません。HTMLCanvasElement実際にはApp.canvasはのいずれかであるとみなされます。。
私は次のコードのように@typeアノテーションを使用することも試みたが、結果は同じです:
// create a namespace "App"
var App;
App = {};
/** @type {HTMLCanvasElement} */
App.canvas = document.getElementsByTagName('canvas')[0];
はインテリセンスがの性質のために、変数の型を理解させるために、それは可能です私の例ではApp.canvasのようなオブジェクトですか?
感謝をインテリセンスの改善にあなたの答えは大変です!回避策は完全に機能しました。あなたがこの問題を解決するために働いていることを知っておきましょう。とにかく、Visual Studio CodeはJavaScriptを扱う素晴らしい軽量コードエディタなので、良い仕事を続けてください! :) – user1945293