in ts/src/utils.ts [666:704]
static convert(input: $tea.Model, output: $tea.Model): void {
if (!output) {
return;
}
let inputModel = Object.assign({}, input);
let constructor = <any>output.constructor;
let types = constructor.types();
// let constructor = <any>output.constructor;
for (let key of Object.keys(constructor.names())) {
if (inputModel[key] !== null && inputModel[key] !== undefined) {
if (isModelClass(types[key])) {
output[key] = new types[key](output[key]);
Client.convert(inputModel[key], output[key]);
} else if (types[key] && types[key].type === 'array') {
output[key] = inputModel[key].map(function (d) {
if (isModelClass(types[key].itemType)) {
var item = new types[key].itemType({});
Client.convert(d, item);
return item;
}
return d;
});
} else if (types[key] && types[key].type === 'map') {
output[key] = {};
Object.keys(inputModel[key]).map(function (d) {
if (isModelClass(types[key].valueType)) {
var item = new types[key].valueType({});
Client.convert(inputModel[key][d], item);
output[key][d] = item;
} else {
output[key][d] = inputModel[key][d];
}
});
} else {
output[key] = inputModel[key];
}
}
}
}