gpt4 book ai didi

javascript - 动态构造包/目录中所有对象的列表

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:30 25 4
gpt4 key购买 nike

我有一个包含所有显示类型的目录,我需要通过 API 公开这些类型。这组显示类型将在该应用程序的生命周期中显着增长,因此如果添加新类型不需要向我们的服务层添加新代码,那就太好了。

因此,在子目录 src/domain/types/ 包含 Type1.jsType2.jsType3.jsType4.js 的情况下,是否可以使用一段代码来实例化所有这些类型并将它们添加到某个数组中?像这样的东西:

// I know this line won't work, but you get the idea
const dir = require('../src/domain/types/')


getAllDisplayTypes() {
const types = []
for (const type in dir) {
// auto-magically create new type
types.push(someMagicallyCreatedType)
}
return types
}

其中 types 是一个数组,其中每个条目都是在 TypeX.js 的构造函数中创建的一组默认值。

或者,如果您有一种创造性的方法来公开一组域对象定义,我会洗耳恭听。

最佳答案

想通了。使用名为 require-dir 的包,让您需要整个目录,我能够使用一些 JS 魔鬼来实现此工作:

const require_dir = require('require-dir')
const allTypes = require_dir('../domain/types/')

// ...

getDisplayTypes() {
const types = {}
for (const typeName of Object.keys(allTypes)) {
const typeConstructor = allTypes[typeName]
const typeInstance = new typeConstructor()
types[typeName] = typeInstance
}
return types
}

关于javascript - 动态构造包/目录中所有对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58068454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com