我有一个要初始化的变量foo。我下面的尝试没有编译。
let foo: (x: number)=>{y:number,z: number}= (x)=>{x+1,x+2};有以下错误:
逗号运算符左侧未使用,且没有边effects.ts(2695) (参数) x: number
问题
初始化变量foo的正确方法是什么?
发布于 2021-10-29 00:12:22
由于箭头函数表示法的工作方式,输出周围的大括号被解释为包含函数体,而不是返回的值。
有两种方法可以解决这个问题。一种是使用较长的箭头函数表示法,并使用return语句。另一种方法是将对象封装在括号中。
看起来,您还忘了在输出中添加y和z标签。
试一试其中一种:
let foo: (x: number) => {y: number, z: number} = (x) => ({y: x+1, z: x+2});let foo: (x: number) => {y: number, z: number} = (x) => {
return {y: x+1, z: x+2};
};值得注意的是,当以这种方式初始化变量时,TypeScript能够推断其类型。因此,您实际上可以将代码缩短为以下其中之一:
let foo = (x: number) => ({y: x+1, z: x+2});let foo = (x: number) => {
return {y: x+1, z: x+2};
};https://stackoverflow.com/questions/69762244
复制相似问题