MST

星途 面试题库

面试题:TypeScript 可选参数与默认参数在类方法中的复杂应用

创建一个 TypeScript 类,类中有一个方法用于根据用户输入生成个性化问候语。该方法接受三个参数,第一个参数是用户姓名,第二个参数是问候类型(如 'formal' 表示正式问候,'casual' 表示随意问候,'special' 表示特殊问候),第三个参数为可选参数,在 'formal' 类型问候下默认为 'Mr.' 或 'Ms.',在 'casual' 类型问候下默认为 'buddy',在'special' 类型问候下默认为 'dear'。根据不同的问候类型和参数生成相应的问候语,并且要考虑类型安全,例如用户输入的问候类型不存在时要抛出合适的错误。请实现这个类和方法。
22.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
class GreetingGenerator {
    generateGreeting(name: string, greetingType: 'formal' | 'casual' |'special', prefix?: string): string {
        if (!['formal', 'casual','special'].includes(greetingType)) {
            throw new Error('Invalid greeting type');
        }
        if (!prefix) {
            if (greetingType === 'formal') {
                prefix = name.startsWith('Mr.') || name.startsWith('Ms.')? '' : 'Ms.';
            } else if (greetingType === 'casual') {
                prefix = 'buddy';
            } else {
                prefix = 'dear';
            }
        }
        if (greetingType === 'formal') {
            return `${prefix} ${name}, how are you?`;
        } else if (greetingType === 'casual') {
            return `Hey ${prefix}! How's it going?`;
        } else {
            return `${prefix} ${name}, this is a special greeting!`;
        }
    }
}