代码之家  ›  专栏  ›  技术社区  ›  Joe Tito

声明对象并在内部引用其他值

  •  0
  • Joe Tito  · 技术社区  · 7 月前

    我正试图为我的网站创建一个“config”对象。一个配置值是“email”,另一个是“faqs”数组。我想在faqs中引用email值,但得到以下错误:在声明之前阻止作用域变量'used'。

    我理解这个错误,但我正在寻找一种方法来解决这个问题,这样我就不必在多个地方对我们的电子邮件进行硬编码。

    一些示例代码来演示我想做什么(这显然会中断)

    interface Config {
      email: string;
      faqs: Array<FAQ>;
    }
    
    export interface FAQ {
      question: string;
      answer: string;
    }
    
    export const config: Config = {
      email: "[email protected]",
      faqs: [
        {
          question: 'simple question',
          answer: 'I want to refer to ' + config.email + ' here'
        },
      ],
    
    
    1 回复  |  直到 7 月前
        1
  •  1
  •   Andres Aranda    7 月前

    您可以通过为faqs属性使用getter来解决这个问题。getter允许您动态访问电子邮件值,而不会遇到在完全定义变量之前尝试使用变量的问题。

    interface Config {
      email: string;
      faqs: Array<FAQ>;
    }
    
    export interface FAQ {
      question: string;
      answer: string;
    }
    
    export const config: Config = {
      email: "[email protected]",
      get faqs(): Array<FAQ> {
        return [
          {
            question: "simple question",
            answer: `I want to refer to ${this.email} here`,
          },
        ];
      },
    };