Идентификатор свойства не определен в типе Node в PhpStorm / WebStorm - PullRequest
0 голосов
/ 08 марта 2019

Php / WebStorm сообщает об этом странном предупреждении в моем коде JavaScript, заявляя, что свойство id не определено в элементе / узле.Дело в том, что элемент является элементом firstChild, выбранным из родительского элемента.

function hideChildAndUpdateID(title) {
    let parent = document.getElementById('parent');
    let child = parent.firstChild;

    // Hiding the child.
    child.style.display = 'none';
    // Temporary ID so we can find it later.
    child.id = 'child-tmp-id'; // Warning occurs here
}

И это все сообщение Php / WebStorm

Property id is not defined in type Node less... (Ctrl+F1) 
Inspection info: This inspection reports assignments to undefined properties of explicitly type-annotated variables.

Этот код сам по себе действительно работает,Элемент child получает значение id, измененное на то, что я установил, но это предупреждение меня раздражает.

Я пытался использовать child.setAttribute('id', 'child-tmp-id'), но это не сработало должным образом.

Есть ли соглашение при работе с firstChild или это просто вещь Php / WebStorm?

1 Ответ

1 голос
/ 08 марта 2019

Узлы могут быть не просто элементами и не обязательно имеют свойство id. Попробуйте вместо этого использовать firstElementChild, который возвращает первый дочерний элемент:

function hideChildAndUpdateID(title) {
    let parent = document.getElementById('parent');
    let child = parent.firstElementChild;

    // Hiding the child.
    child.style.display = 'none';
    // Temporary ID so we can find it later.
    child.id = 'child-tmp-id'; 
}

...