小编joh*_*thy的帖子

索引签名参数类型不能为联合类型。考虑改用映射对象类型

我正在尝试使用以下模式:

enum Option {
  ONE = 'one',
  TWO = 'two',
  THREE = 'three'
}

interface OptionRequirement {
  someBool: boolean;
  someString: string;
}

interface OptionRequirements {
  [key: Option]: OptionRequirement;
}
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很简单,但是出现以下错误:

索引签名参数类型不能为联合类型。考虑改用映射对象类型。

我究竟做错了什么?

javascript typescript

18
推荐指数
7
解决办法
5373
查看次数

如何npm安装并强制使用最新版本(永久)?

我正在为公司内部部署专用的npm模块。由于模块是在内部处理的,因此我们可以信任版本凹凸等。

我如何在各个项目中安装该模块,以便始终随每个模块都安装该模块的最新版本npm install,这样我就不必遍历大量项目并在每次package.json部署时都在其中更新版本?

请注意,这适用于选定的软件包,而不适用于所有软件包,即仅适用于我们私有服务器上托管的软件包。

javascript node.js npm

5
推荐指数
1
解决办法
3218
查看次数

Joi - 让一切都默认?

我正在构建一个 Node/Express API 并使用 Joi 进行验证。这是一个很棒的软件包,并且非常有用。然而,我们已经厌倦了做这样的事情:

const mySchema = joi.object({
    thing1: joi.string().required(),
    thing2: joi.string().required(),
    thing3: joi.string().required(),
    thing4: joi.string().required(),
    thing5: joi.string().required(),
}).required();
Run Code Online (Sandbox Code Playgroud)

我们希望默认情况下所有内容都是必需的,并手动调用.optional以覆盖它。事实上,这似乎是一个明智的默认设置——但暂时将其搁置一旁。

有没有办法实现这一目标?

javascript validation node.js joi

4
推荐指数
2
解决办法
1644
查看次数

为什么这个映射函数不会改变原始数组中的值?

这是有问题的代码:

const array = [
  1, 2, 3
]

array.map(item => {
  item = item + 1
})

console.log(array)
Run Code Online (Sandbox Code Playgroud)

我认为该方法item中的(第一个)参数map是对数组中原始项目的引用,并且直接改变它会更改第一个数组的内容......这不是真的吗?

javascript arrays ecmascript-6

2
推荐指数
1
解决办法
2215
查看次数

如何提高这个 MongoDB / Mongoose 查询的性能?

我有一个 GET all products 端点,它需要很长时间才能返回响应:

Product.find(find, function(err, _products) {
  if (err) {
    res.status(400).json({ error: err })
    return
  }

  res.json({ data: _products })

}).sort( [['_id', -1]] ).populate([
  { path: 'colors', model: 'Color' },
  { path: 'size', model: 'Size' },
  { path: 'price', model: 'Price' }
]).lean()
Run Code Online (Sandbox Code Playgroud)

尽管产品集合中只有 60 个文档,但此查询最多需要4 秒

这个查询来自以前的开发人员,我对 Mongoose 不太熟悉。

什么是性能后果sortpopulate?我认为populate是这里的罪魁祸首?我不太确定populate在做什么,所以我不清楚如何避免它或在数据库级别建立索引以提高性能。

javascript mongoose mongodb nosql node.js

1
推荐指数
1
解决办法
1895
查看次数