export interface ILinkNode { data?: T; prev?: ILinkNode; next?: ILinkNode; } export default class LinkedList { head: ILinkNode; tail: ILinkNode; length: number; push(data: T): ILinkNode; remove(node: ILinkNode): void; forEach(cb: (data: T) => void): void; toArray(): T[]; removeByData(data: T): void; getByData(data: T): ILinkNode; clear(): void; }