次のコードとその中にWebStormインスペクションBinary operation argument type newVal is not compatible with type string
が表示されます:
なぜだろう
完全なモジュールコード:
define(function (require) {
"use strict";
var ng = require('angular');
require('../ngModule').directive('downloadFile', ['$parse', 'auth.authService', function ($parse, authService) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var getter = $parse(attrs.downloadFile);
scope.$watch(getter, function (path) {
if (path !== "") {
var form = document.createElement("form");
var element1 = document.createElement("input");
var element2 = document.createElement("input");
form.method = "POST";
form.action = path;
element1.value = authService.getToken();
element1.name = "Authorization";
form.appendChild(element1);
element.append(form);
form.submit();
element.empty();
}
});
}
};
}]);
});
AngularJSのJSDoc定義により、WebStormはpath
引数をブール値であると見なします。
独自のJSDocを追加することで、WebStormの不満を解消できます。
if (path !== /** @type {boolean} */"") {