microsoft / microsoft/TypeScript
Cannot use Array.prototype.push.apply with NodeList, even though it works properly in all browsers.
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
TypeScript Version: 3.9.x-dev.20200627
Search Terms:
strictBindCallApply NodeList
Code
const bodyChildren = document.body.childNodes;
const arr: Node[] = [];
arr.push.apply(arr, bodyChildren);
Expected behavior:
Doesn't throw errors.
Actual behavior:
Throws errors on line 3: Argument of type 'NodeListOf' is not assignable to parameter of type 'Node[]'.
Type 'NodeListOf' is missing the following properties from type 'Node[]': pop, push, concat, join, and 19 more.
Playground Link:
Playground Link
Related Issues:
Couldn't find any.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked Playground and reproduce the error in the provided TypeScript snippet. Trace the strictBindCallApply handling named in the search terms, then verify that Array.prototype.push.apply accepts the NodeList example without the reported type error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 42/100