Dom icon indicating copy to clipboard operation
Dom copied to clipboard

Docblock types to show all possibilites

Open g105b opened this issue 2 years ago • 1 comments

Currently, the returned type of a function like cloneNode() or querySelector is hard-coded to Node and Element respectfully, but there may be any child type returned in reality.

This means that $document->querySelector("a")->href = "/test"; shows up as an error during static analysis, because an Element doesn't have a href property, whereas the actual type returned does (HTMLAnchorElement).

The developer must type-hint the object returned by the DOM API, so it would be better for IDEs and static analysis if the available methods/properties were shown, rather than showing an error for all objects.

g105b avatar Oct 04 '21 08:10 g105b

This solution won't work. If static analysis is complaining that there isn't a href attribute, it will still complain that there might not be a href attribute. Without being specific, you'll always get the complaint.

I'm going to leave this open until certain common functions are type hinted to return Element rather than Node (because even though that's off-spec, it's definitely what will be returned), as Node is really the limiting factor here.

g105b avatar Oct 13 '21 16:10 g105b