我需要动态定义类,所以在我的 ES6 代码中编写了一个代码生成器:
function makeClass(className, baseClass = _DefaultBaseClass, ...args) {
return (
eval(`
class ${className} extends ${baseClass} {
constructor(${...args}) {
super(${...args})
}
}
`)
)
}
'_DefaultBaseClass' 是一个空类,用于简化上述生成器函数逻辑:
class _DefaultBaseClass() {
constructor() {}
}
除了扩展运算符之外,生成器代码一切正常。在此示例中,扩展运算符本身在模板文字之外的项目中可以正常工作。
我正在使用以下 webpack Babel 预设/插件:'react'、'es2015'、'stage-2'、'transform-runtime'。