MST

星途 面试题库

面试题:TypeScript复杂数据类型声明与函数重载

编写一段TypeScript代码,声明一个名为`User`的接口,包含`name`(字符串类型)、`age`(数字类型)和`hobbies`(字符串数组类型)属性。然后编写一个函数`printUserInfo`,它有两种重载形式:一种接受`User`类型参数直接打印用户信息;另一种接受`name`(字符串)和`age`(数字)作为参数,先创建`User`对象再打印信息。
50.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface User {
    name: string;
    age: number;
    hobbies: string[];
}

function printUserInfo(user: User): void;
function printUserInfo(name: string, age: number): void;
function printUserInfo(arg1: User | string, arg2?: number) {
    let user: User;
    if (typeof arg1 ==='string') {
        user = {
            name: arg1,
            age: arg2!,
            hobbies: []
        };
    } else {
        user = arg1;
    }
    console.log(`Name: ${user.name}, Age: ${user.age}, Hobbies: ${user.hobbies.join(', ')}`);
}