在下面的示例中,我有一个lst之类的json,我想将其映射到MyModel

interface MyModel {
    id: number;
    isRequired : boolean;
    ,...
}

let lstByModel: Array<MyModel> = [];

// lst comes from API
let lst:any[] = [
    {
        "id":"10",
        "isRequired":"false"
    }
];

lstByModel = lst; // How to map lst to MyModel (lstByModel)?

console.log(lstByModel); // it shows { id : "10" , isRequired : "false"} but I need { id : 10, isRequired : false } How can I do that?


提前致谢。

最佳答案

Typescript中的typesiterfaces仅是编译时。因此,您的lst不会自动转换为任何其他type

您需要手动将字符串映射到数字。就你而言

lstByModel = lst.map(lstItem=>{
    return {
         id:parseInt(lstItem.id), // manually changing string to number
        isRequired: lstItem.isRequired=="true" //parsing boolean
    }
})

关于javascript - 使用 typescript 将对象转换到模型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54849109/

10-09 07:07