尝试从界面创建文本字符串以显示到UI中,以下代码为每个界面创建了一个单独的文件,如何如预期的那样创建单个文件。
还有没有办法创建UI以显示打字稿代码作为示例,而不是使用文本字符串?
main.js
var path = "/filepath"
var data = [
{
name: "IParam"
},
{
name: "IError"
}
]
function createInterfaces(path, data) {
var _text = 'import { ';
$.each(data,function(id,val){
_text += val.name + '}' + 'from ' + path + ';\n\n';
});
return _text;
}
预期结果应为
"import { IParam, IError} from '/filePath'";
答案 0 :(得分:2)
您应该将最后一位移出for循环
function createInterfaces(path, data) {
var _text = 'import { ';
$.each(data,function(id,val){
_text += val.name;
});
_text += '}' + 'from ' + path + ';\n\n'
return _text;
}
另一种方法是-
function createInterfaces(path, data){
const imports = data.map(d => d.name).join(', ');
return `import { ${imports} } from '${path}';\n\n`;
}
这是要检查的代码段-
var path = "/filepath"
var data = [
{
name: "IParam"
},
{
name: "IError"
}
]
function createInterfaces(path, data){
const imports = data.map(d => d.name).join(', ');
return `import { ${imports} } from '${path}';\n\n`;
}
console.log(createInterfaces(path, data));
答案 1 :(得分:0)
您应该在Array.prototype.map
数组上调用data
并返回每个name
,然后加入结果。
var path = "/filepath"
var data = [ { name: "IParam" }, { name: "IError" } ]
function createInterfaces(path, data) {
return "import { " + data.map(d => d.name).join(', ') + " } from '" + path + "';\n\n"
}
console.log(createInterfaces(path, data))
答案 2 :(得分:0)
您可以使用array.map
创建字符串并将结果分配给text
变量。
text += `import { ${data.map(a => a.name).toString()} } from '${path}' `