在 VSCode 链表节点源码中有一段
class Node<E> {
static readonly Undefined: Node<any> = new Node<any>(undefined);
element: E;
next: Node<E>;
prev: Node<E>;
constructor(element: E) {
this.element = element;
this.next = Node.Undefined;
this.prev = Node.Undefined;
}
}
我虽然想到了 Undefined
用来初始化的,避免将 next
与 prev
类型设成 Node<E> | undefined
但是我对 this.next = Node.Undefined;
这个的赋值 即可以 Node<any> 赋值 Node<E>
难到仅因为 any 是所有类型的子类型吗?