WebStorm 无法识别有效的 TypeScript 解构
WebStorm failing to recognise valid TypeScript destructuring
我将 WebStorm 与 TypeScript 结合使用,但在尝试使用参数解构定义方法类型时遇到了障碍。
这里(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}):
声明“) expected”后看到语法错误,它导致文件其余部分出现语法问题,以至于无法使用。这不会在 VS Code 或 Sublime 中作为语法错误突出显示。任何建议将不胜感激。
({paramToUse}: {paramToUse: string}) => void
函数类型包含冗余信息,没有多大意义,这可能是这种语法不受所有支持的原因。
在这里函数参数是否被解构并不重要。解构特定于函数实现而非类型:
private myMethod: (param: {paramToUse: string}) => void = ({paramToUse}) => {};
我将 WebStorm 与 TypeScript 结合使用,但在尝试使用参数解构定义方法类型时遇到了障碍。
这里(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}):
声明“) expected”后看到语法错误,它导致文件其余部分出现语法问题,以至于无法使用。这不会在 VS Code 或 Sublime 中作为语法错误突出显示。任何建议将不胜感激。
({paramToUse}: {paramToUse: string}) => void
函数类型包含冗余信息,没有多大意义,这可能是这种语法不受所有支持的原因。
在这里函数参数是否被解构并不重要。解构特定于函数实现而非类型:
private myMethod: (param: {paramToUse: string}) => void = ({paramToUse}) => {};