我正在使用带有TypeScript的WebStorm,并在尝试使用参数解构来定义方法的类型时遇到麻烦。
这里提到(https://github.com/Microsoft/TypeScript/issues/5034)为了使用具有解构模式的类型注释,我们必须使用以下模式:
function someFunc(data: any) {
const { x, y } : { x: number, y: number } = data;
}
这适用于我的TS文件,如下所示:
export default class foo {
private bar: any;
private myMethod: ({paramToUse}: {paramToUse: string}) => void;
constructor() {
console.log('hi');
this.bar = "bar";
};
}
在WebStorm中,我在({paramToUse}):
声明“)预期”后发现语法错误,并且导致文件其余部分的语法问题无法使用。这不会在VS Code或Sublime中突出显示为语法错误。任何建议都会非常感激。
答案 0 :(得分:1)
({paramToUse}: {paramToUse: string}) => void
函数类型包含冗余信息并且没有多大意义,这可能就是为什么这种语法在任何地方都不受支持的原因。
这里函数参数是否被破坏无关紧要。解构特定于函数实现,但不是类型:
private myMethod: (param: {paramToUse: string}) => void = ({paramToUse}) => {};