代码之家  ›  专栏  ›  技术社区  ›  Intellectual Gymnastics Lover

如何分配类型为(x:number)=>{y:number,z:number}的变量?

  •  2
  • Intellectual Gymnastics Lover  · 技术社区  · 3 年前

    我有一个变量 foo

    let foo: (x: number)=>{y:number,z: number}= (x)=>{x+1,x+2};
    

    出现以下错误:

    逗号运算符的左侧未使用,并且没有副作用。ts(2695)

    问题

    初始化变量的正确方法是什么 ?

    1 回复  |  直到 3 年前
        1
  •  4
  •   Mark Hanna    3 年前

    由于箭头函数表示法的工作原理,输出周围的大括号被解释为包含函数体,而不是返回的值。

    看起来您还忘了添加 y z 输出中的标签。

    let foo: (x: number) => {y: number, z: number} = (x) => {
        return {y: x+1, z: x+2};
    };
    

    同样值得注意的是,当以这种方式初始化变量时,TypeScript能够推断其类型。因此,您实际上可以将代码缩短为:

    let foo = (x: number) => {
        return {y: x+1, z: x+2};
    };