MST

星途 面试题库

面试题:TypeScript泛型默认类型在类继承与约束中的深度运用

定义一个基类BaseClass,使用泛型T且为T设置默认类型为number。再定义一个子类SubClass继承自BaseClass,要求在子类的构造函数中,接受一个参数,这个参数的类型必须是泛型T类型的数组,同时子类有一个方法printArray,用于打印传入的数组。请完整实现这个类的继承结构。
20.5万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
class BaseClass<T = number> {
    constructor() {}
}

class SubClass<T = number> extends BaseClass<T> {
    private arr: T[];

    constructor(arr: T[]) {
        super();
        this.arr = arr;
    }

    printArray(): void {
        console.log(this.arr);
    }
}

上述代码在TypeScript中实现了题目要求的类继承结构,在JavaScript中,由于没有泛型的原生支持,无法完全按照要求实现,但可以模拟类似功能:

class BaseClass {
    constructor() {}
}

class SubClass extends BaseClass {
    constructor(arr) {
        super();
        this.arr = arr;
    }

    printArray() {
        console.log(this.arr);
    }
}

在JavaScript中,虽然没有类型检查,但可以传递任何类型的数组。而在TypeScript中,SubClass的构造函数参数类型必须是泛型T类型的数组。