MST
星途 面试题库

面试题:TypeScript可选参数与默认参数在复杂类型和设计模式中的深度应用

在一个基于TypeScript的前端项目中,使用一个类似建造者模式的场景,有一个`FormBuilder`类,其构造函数接受多个参数,其中部分参数是可选的且有默认值,这些参数用于配置表单的各种属性,如表单标题、提交按钮文本、是否启用验证等。请实现`FormBuilder`类,并展示如何优雅地使用可选参数和默认参数来满足不同表单的配置需求,同时要考虑参数类型的严格性以及代码的可维护性和扩展性。
45.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
class FormBuilder {
    private formTitle: string;
    private submitButtonText: string;
    private enableValidation: boolean;

    constructor(
        formTitle: string = '默认表单标题',
        submitButtonText: string = '提交',
        enableValidation: boolean = true
    ) {
        this.formTitle = formTitle;
        this.submitButtonText = submitButtonText;
        this.enableValidation = enableValidation;
    }

    buildForm() {
        // 这里进行表单构建逻辑,例如返回一个包含表单配置的对象
        return {
            formTitle: this.formTitle,
            submitButtonText: this.submitButtonText,
            enableValidation: this.enableValidation
        };
    }
}

// 使用示例
const defaultForm = new FormBuilder().buildForm();
console.log(defaultForm);

const customForm = new FormBuilder('自定义表单标题', '保存', false).buildForm();
console.log(customForm);