サーバーからデータを取得する関数があります:
function getData(data){
console.log(data.someVar);
}
Webstormによれば、someVar
-は未解決の変数です。そのような警告は何を取り除くことができますか?
いくつかのオプションがあります:
data['some_unres_var']
;また、「データ」の名前空間を作成する(/** @namespace data.some_unres_var*/
のような注釈を追加する)、そのようなフィールドを作成する、または名前を変更することを提供するWebstorm。
JSDocを使用します。
/**
* @param {{some_unres_var:string}} data
*/
function getData(data){
console.log(data.some_unres_var);
}
JSDocオブジェクト。それからそのメンバー。
/**
* @param data Information about the object.
* @param data.member Information about the object's members.
*/
function getData(data){
console.log(data.member);
}
@property
ローカル変数(非パラメーター){{ member:type }}
構文は、Djangoテンプレートと競合する可能性があります。オブジェクトの配列を文書化するには、JSDocとして[]
ブラケットを使用します suggests :
/**
* @param data
* @param data.array_member[].foo
*/
他のすべての回答は、一般的なケースでは正しくありません。パラメーターとしてdata
を取得しないとどうなりますか?その場合、JSDocはありません。
function niceApiCall(parameters) {
const result = await ... // HTTP call to the API here
for (const e of result.entries) {
.. // decorate each entry in the result
}
return result;
}
WebStormは、「result.entries」が未解決の変数(フィールド)であることを警告します。
一般的な解決策は、@namespace
宣言を追加することです。
function niceApiCall(parameters) {
/** @namespace result.entries **/
const result = await ... // HTTP call to the API here
for (const e of result.entries) {
.. // decorate each entry in the result
}
return result;
}
http://devnet.jetbrains.com/message/5366907 に記述されているように、jsonリテラルを返す匿名関数式でダミーのjsファイルを使用することは解決策です。また、このjson値を保持する偽の変数を作成し、この変数を@paramアノテーションの値として使用して、WebStormに実際の型を知らせることもできます。好む:
var jsontext = {"some_unres_var":"val"};
/** @param {jsontext} data
function getData(data){
console.log(data.some_unres_var);
}
こちらもご覧ください http://devnet.jetbrains.com/message/5504337#5504337
破壊的な使用、ルーク。
function getData(data){
const {member} = data;
console.log(member);
}