仅返回1 | 0 | -1 | 2在函数中-TypeScript

时间:2019-06-18 21:34:58

标签: typescript

是否可以通过这种方式限制返回值?

  comprobarExistencias():   -1 | 0 | 1 | 2  {

    let valor: -1  = -1
    // I don't want do this...

   return valor

  }

不要像数字一样使用数字吗?

2 个答案:

答案 0 :(得分:1)

之所以存在,是因为打字稿会自动预期会发生突变,因此如果let valor = -1是-1类型,那么如果您以后尝试更改它,说valor = 1就会得到该类型错误1无法分配给-1类型;

要解决此打字稿,3.5.1提供了“ as const”修饰符,该修饰符告诉打字稿您不打算修改值,在这种情况下,可以将其推断为文字类型。

const negative = -1 as const;

是的,这是使它推断为-1的额外工作,但是如上所述,如果默认情况下为-1,则将为90%的Typescript社区带来更多问题。

答案 1 :(得分:1)

解决方案比我想的要简单

let valor: -1 | 0 | 1 | 2 =   1  //This pass
let valor: -1 | 0 | 1 | 2 =   3  //This return and error

现在我可以在所有功能中使用valor。我只需要使用数字作为类型即可。