打字稿错误分配/映射到强类型对象

时间:2018-12-08 15:24:51

标签: typescript

我有一个原始对象,我想将其映射/分配给Typescript的类型化对象。当我进行分配时,它与对象类型不同,例如

interface TokenModel {
    username: string;
    password: string;
}

const obj = {
    usernam1: 'ali@mailinator.com',
    password: 'admin',
    extraProp: 'abc123'
};

const model: TokenModel = <TokenModel><any>obj;

即使我正在转换原始对象并将其分配给类型化对象,model的值也与分配的值相同:

{
    usernam1: 'ali@mailinator.com',
    password: 'admin',
    extraProp: 'abc123'
}

它是否应该具有这样的值:

{
    username: null,
    password: 'admin'
}

1 个答案:

答案 0 :(得分:2)

您实际上并没有将其“强制转换”为类型,而是告诉编译器对象应该具有这些值。不会自动将null / undefined值分配给字段。

编辑:

回答评论中的问题

const model: TokenModel = {
    username: obj.usernam1,
    password: obj.password
}