-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to narrow type of querySelectorAll
results?
#141
Comments
You want to add a type assertion for import { DOMParser, Element } from "deno_dom";
// ...
for (const anchor of anchors) {
const href = (anchor as Element).getAttribute("href");
} |
That's what I'm currently doing but it's feels not ideal. For example, if used multiple times it requires assertions at each place, or a dummy reassignment. Would it be possible to make |
Yeah, that's basically #4. When I get some time I'll make it happen. After I do that I'll have to make the different HTML element classes as well |
I'm a little confused. How do I narrow down the const images = [
...new Set(
[...owlDemoEl.querySelectorAll<HTMLImageElement>("img")].map((img) => img.src),
),
]; But while using deno-dom, the same code would give me an error saying that src does not exist because img is typed as HTMLElement. Of course, I could do it like so, but it's not as clean in my opinion. const images = [
...new Set(
[...owlDemoEl.querySelectorAll("img")].map((img) =>
img.getAttribute("src")
),
),
]; What did I miss? |
This issue should have been closed with #162 and #175. @jakubdonovan Specific element types and APIs like |
I'm getting type errors when iterating over a node list of elements.
How can I narrow the types to an (anchor) element type?
The signature
querySelectorAll(selectors: string): NodeList
suggestNodeList
is missing a generic type such that we can supply an element type to narrow it down.Interestingly, the signature
querySelector(selectors: string): Element | null
always returns an element instead of a node. DoesquerySelector
never return a non-element node? If so, then why canquerySelectorAll
?The text was updated successfully, but these errors were encountered: