Ali*_*eir 2 javascript-intellisense typescript reactjs visual-studio-code
<MyCustomField
type={props.type}
Run Code Online (Sandbox Code Playgroud)
MyCustomField 的type类型定义:
type?: string;
Run Code Online (Sandbox Code Playgroud)
props.type的类型定义:
type?: string;
Run Code Online (Sandbox Code Playgroud)
感觉就像我不小心打开了某些设置。我的 tsconfig:
<MyCustomField
type={props.type}
Run Code Online (Sandbox Code Playgroud)
编辑:此外,它编译得很好:
只是 VSCode Intellisense 不喜欢它。
编辑2:
if (!clone[index].options) throw Error(`Data at index ${index}, ${optionIndex} doesn\'t have options`);
if (type === FieldDataTypeEnum.RadioButton) {
clone[index].options.forEach(o => o.checked = false);
} else {
clone[index].options[optionIndex].checked = true;
}
Run Code Online (Sandbox Code Playgroud)
这也给了我一个错误,指出clone[index].options可能是未定义的,即使if语句应该忽略这一点:
但仍然编译得很好。
小智 6
对我来说,VSCode 使用的是 Typescript 的最新测试版,而不是我在工作区中声明的版本。
他们的新测试版本的 PR 引入了一些潜在的重大更改,这就是您看到错误的原因。 https://github.com/microsoft/TypeScript/pull/43947
它引入了一种新的严格模式——strictOptionalProperties。如果您"strict": true的 tsconfig 中有此新模式,则默认情况下启用。
有人在这里提出了一个建议,这可能有助于使这一点更加清晰。 https://github.com/microsoft/TypeScript/issues/44403
总而言之,您在 VSCode 中看到 Intellisense 问题,因为 VSCode 使用的新版本 Typescript 引入了重大更改。如果您更改 VSCode Typescript 版本以匹配您的工作区,应该没问题。
| 归档时间: |
|
| 查看次数: |
1680 次 |
| 最近记录: |