【问题标题】:How to dynamically set an object key in typescript如何在打字稿中动态设置对象键
【发布时间】:2020-07-17 08:04:43
【问题描述】:

如何创建一个函数,其中一个对象的键是从函数中动态设置的

export const validateObjectId = (key: string = 'id'): ObjectSchema => {
  return Joi.object({
    key: Joi.string()
      .regex(/^(?=[a-f\d]{24}$)(\d+[a-f]|[a-f]+\d)/i)
      .required(),
  });
};

如何让key成为对象的key

【问题讨论】:

  • 我不明白,你是在验证对象的 key 属性吗?

标签: node.js typescript joi


【解决方案1】:

我已经能够使用下面的代码 sn-p 找到出路

export const validateObjectId = (key: string = 'id'): ObjectSchema => {
  interface Obj {
    [key: string]: Object;
  }

  const object: Obj = {};

  object[key] = Joi.string()
    .regex(/^(?=[a-f\d]{24}$)(\d+[a-f]|[a-f]+\d)/i)
    .required();
  return Joi.object(object);
};

【讨论】:

    【解决方案2】:

    也许您可以尝试以下方法:

    export const validateObjectId = (key: string = 'id'): ObjectSchema => {
        let object: any = {};
        object[key] = Joi.string()
              .regex(/^(?=[a-f\d]{24}$)(\d+[a-f]|[a-f]+\d)/i)
              .required();
        return Joi.object(object);
    }
    

    干杯

    【讨论】:

    • 我刚刚修复了一个语法错误(将object 设为any 类型,并在object[key] = ... 之前删除了var),它现在应该符合打字稿要求。让我知道它是否仍然不起作用(如果是这种情况,错误是什么)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-23
    • 1970-01-01
    • 2021-12-17
    • 2019-12-02
    • 2023-02-02
    • 2020-12-01
    • 2020-12-14
    相关资源
    最近更新 更多