TypeScript Version: 2.0.6
Code
From lib.es6.d.ts:
interface Node extends EventTarget {
// ...
appendChild(newChild: Node): Node;
// ...
}
Test case:
document.createElement('div').appendChild(document.createElement('span'));
Expected behavior:
According to Node.appendChild() - MDN:
Syntax
var aChild = element.appendChild(aChild);
The returned value is the appended child.
The return type should be the type of the element being appended, in this case, HTMLSpanElement.
Actual behavior:
The appendChild(document.createElement('span')) just return with the type Node.
Suggestion
I wonder if it would be better using Generics to define the return type of appendChild(), such as:
interface Node extends EventTarget {
appendChild<T>(newChild: T): T;
}
TypeScript Version: 2.0.6
Code
From lib.es6.d.ts:
Test case:
Expected behavior:
According to Node.appendChild() - MDN:
The return type should be the type of the element being appended, in this case,
HTMLSpanElement.Actual behavior:
The
appendChild(document.createElement('span'))just return with the typeNode.Suggestion
I wonder if it would be better using Generics to define the return type of
appendChild(), such as: