Подтвердить что ты не робот

Почему "аргумент двоичной операции типа newval несовместим с строкой типа"

У меня есть следующий код, и внутри него появляется проверка 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();
                    }
                });
            }
        };
    }]);
});
4b9b3361

Ответ 1

Определение AngularJS JSDoc позволяет WebStorm считать аргумент path логическим.

Вы можете заставить WebStorm перестать жаловаться, добавив свой собственный JSDoc:

if (path !== /** @type {boolean} */"") {