WebStorm无法识别有效的TypeScript解构

时间:2018-04-24 10:28:16

标签: typescript syntax ecmascript-6 webstorm

我正在使用带有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中突出显示为语法错误。任何建议都会非常感激。

syntax error highlighted in WebStorm

1 个答案:

答案 0 :(得分:1)

({paramToUse}: {paramToUse: string}) => void函数类型包含冗余信息并且没有多大意义,这可能就是为什么这种语法在任何地方都不受支持的原因。

这里函数参数是否被破坏无关紧要。解构特定于函数实现,但不是类型:

private myMethod: (param: {paramToUse: string}) => void = ({paramToUse}) => {};