打字稿不正确的分配/映射到强类型对象[关闭]

Posted

技术标签:

【中文标题】打字稿不正确的分配/映射到强类型对象[关闭]【英文标题】:Typescript incorrect assignment/mapping into strongly typed object [closed] 【发布时间】:2019-05-10 01:43:19 【问题描述】:

我有一个原始对象,我想将它映射/分配给 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】:

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

编辑:

回答评论中的问题:

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

【讨论】:

那么如何进行选角,以达到我所说的效果? 你必须自己写。重新分配值

以上是关于打字稿不正确的分配/映射到强类型对象[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

打字稿:如何根据对象键/值类型在 ES6 映射中创建条目

强类型的打字稿集合

打字稿:如何将对象映射到类型?

ActiveRecord 自定义 SQL 结果自动映射

使用猫鼬模型设置打字稿

打字稿为“对象”分配特定类型而不是“任何”