MST

星途 面试题库

面试题:TypeScript泛型类与约束

创建一个TypeScript泛型类 `Queue`,用于实现队列数据结构。泛型参数需有约束,只能是数字、字符串或布尔类型。类中需包含 `enqueue` 方法用于入队,`dequeue` 方法用于出队,`peek` 方法用于查看队首元素,并且要处理队列为空时 `dequeue` 和 `peek` 方法的合适返回或错误抛出。
28.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
class Queue<T extends number | string | boolean> {
    private items: T[] = [];

    enqueue(item: T) {
        this.items.push(item);
    }

    dequeue(): T | undefined {
        if (this.isEmpty()) {
            throw new Error('Queue is empty');
        }
        return this.items.shift();
    }

    peek(): T | undefined {
        if (this.isEmpty()) {
            throw new Error('Queue is empty');
        }
        return this.items[0];
    }

    private isEmpty(): boolean {
        return this.items.length === 0;
    }
}