我正在新的 Visual Studio Code 中尝试一些简单的 Javascript。使用以下js代码:
var obj = { abc: "test" };
obj.foo = "bar";
我收到此错误:
Property 'foo' does not exist on type '{ abc: string; }'.
但是它是一个 js 文件而不是 ts。代码在 Javascript 中无效吗?
我正在新的 Visual Studio Code 中尝试一些简单的 Javascript。使用以下js代码:
var obj = { abc: "test" };
obj.foo = "bar";
我收到此错误:
Property 'foo' does not exist on type '{ abc: string; }'.
但是它是一个 js 文件而不是 ts。代码在 Javascript 中无效吗?
这实际上是设计使然。它可能被认为是有效的 JavaScript,但它不是有效的 TypeScript 语法。
请参阅如何在 TypeScript 中为对象动态分配属性?、http://typescript.codeplex.com/workitem/1657和http://typescript.codeplex.com/discussions/397908。
好消息是,JavaScript 没有被编译,因此该文件仍然可以在您的客户端上正常工作,因为 tsc.exe 永远不会真正针对 .js 文件运行。
有一个规则来配置如何处理这些情况。默认值应该ignore
在 JavaScript 中,但您可以将其配置为警告或错误:
{
"javascript.validate.lint.unknownProperty": "ignore"
}