打字稿parseInt()导致编译错误

时间:2019-04-28 18:00:25

标签: javascript typescript

我对Typescript还是很陌生,我正试图从从mysql数据库中获取的数组中删除一个对象,这是我尝试执行的操作,

// this is the format of the fetched data
let permissions = [
    {
        id: '1',
        permission: 'permission one'
    },
    {
        id: '2',
        permission: 'permission two'
    },
    {
        id: '3',
        permission: 'permission three'
    },
    {
        id: '4',
        permission: 'permission four'
    },
]

permissions = permissions.filter(permission => {
    return parseInt(permission.id, 10) !== 2      // 2 is just an example
});

当我尝试这种方式时,出现以下编译错误

  

'number'类型的参数不能分配给'string'类型的参数


我也尝试了以下方法,但奇怪的是,它总是删除最后一个索引!

const removeIndex = permissions
       .map(item => item.id)
       .indexOf(2);  // also 2 is an example 
   
permissions.splice(removeIndex, 1);

有人可以告诉我错误在哪里吗? 以及这两种方法中哪个更有效? 预先感谢

1 个答案:

答案 0 :(得分:4)

你为什么不试试这个

permissions = permissions.filter(permission => +permission.id !== 2);

Unary plus (+)运算符非常适合将字符串评估为数字