MST

星途 面试题库

面试题:TypeScript中可选参数与默认参数的区别

请阐述TypeScript里可选参数和默认参数在定义方式、使用场景上有何不同,并分别举例说明。
35.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

定义方式

  1. 可选参数:在参数名后加?表示该参数可选。例如:
function greet(name?: string) {
    if (name) {
        console.log(`Hello, ${name}!`);
    } else {
        console.log('Hello!');
    }
}
  1. 默认参数:直接在参数名后使用=为参数指定默认值。例如:
function greet(name = 'Guest') {
    console.log(`Hello, ${name}!`);
}

使用场景

  1. 可选参数:适用于某些调用场景下该参数可有可无,且调用方可能传递undefined来明确表示该参数缺失的情况。例如:
function printUserInfo(user: { name: string; age?: number }) {
    console.log(`Name: ${user.name}`);
    if (user.age) {
        console.log(`Age: ${user.age}`);
    }
}

const user1 = { name: 'Alice' };
const user2 = { name: 'Bob', age: 30 };

printUserInfo(user1); 
printUserInfo(user2); 
  1. 默认参数:适用于大多数情况下该参数有一个合理的默认值,调用方无需每次都指定该参数值的场景。比如在一些工具函数中,像获取当前时间的函数,默认返回当前时间,调用方可以不传入参数。
function getFormattedDate(date = new Date()) {
    return date.toISOString();
}

console.log(getFormattedDate());