MST
星途 面试题库

面试题:TypeScript函数重载:设计模式与类型推断结合

假设你正在开发一个图形绘制库,设计一个 `drawShape` 函数的重载。该函数支持绘制圆形(接受半径作为参数)、矩形(接受宽和高作为参数)和三角形(接受三个边长作为参数)。要求利用TypeScript的类型推断,在调用 `drawShape` 函数时,能根据传入参数的类型和数量正确推断出要绘制的图形类型,并在函数内部进行相应的绘制逻辑(这里绘制逻辑可以简单用 `console.log` 输出相关信息模拟)。同时,要考虑如何通过函数重载和类型设计,使代码在扩展性和可读性上达到较好的平衡。
13.7万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function drawShape(radius: number): void;
function drawShape(width: number, height: number): void;
function drawShape(side1: number, side2: number, side3: number): void;
function drawShape(arg1: number, arg2?: number, arg3?: number) {
    if (arg2 === undefined && arg3 === undefined) {
        console.log(`绘制圆形,半径为: ${arg1}`);
    } else if (arg3 === undefined) {
        console.log(`绘制矩形,宽为: ${arg1},高为: ${arg2}`);
    } else {
        console.log(`绘制三角形,边长分别为: ${arg1}, ${arg2}, ${arg3}`);
    }
}