Angular10 在let关键字(angular)声明的范围内取消定义变量
我的场景是,当按下按钮时,它会生成一个json变量以供导出。我使用let关键字创建了JSON类型的局部变量callAngular10 在let关键字(angular)声明的范围内取消定义变量,angular10,Angular10,我的场景是,当按下按钮时,它会生成一个json变量以供导出。我使用let关键字创建了JSON类型的局部变量calloutputJson,然后尝试将不存在的键添加到此代码中,如下所示 public generateWorkspace() { let outputJson:JSON; outputJson['xml-workspace'] = this.blocklyComponent.toXml() outputJson['vars-ext'] = this.jsonC
outputJson
,然后尝试将不存在的键添加到此代码中,如下所示
public generateWorkspace() {
let outputJson:JSON;
outputJson['xml-workspace'] = this.blocklyComponent.toXml()
outputJson['vars-ext'] = this.jsonContent['vars-ext'];
console.log(outputJson)
}
HTML
生成工作区JSON
但是当执行console.log(outputJson)
时,会抛出一个未定义的错误outputJson
。
根据我的理解,let关键字allow block scope访问,但这有一个错误,尽管我以前声明过这个变量,甚至在打印它之前输入了一些值
请帮忙
请像下面这样定义outputJson,它将解决您的问题
让outputJson:any={} 这肯定能解决我的问题,谢谢你,先生!但我有一个问题。为什么让outputJson:JSON然后用赋值运算符添加新键不起作用。但是任何数组都能解决问题吗?@G.P在你的问题中,你提到过-我创建了JSON类型的局部变量call outputJson。JSON不是一种类型。它是一个接口,any是typescript中的一种类型。
<div>
<button (click)="generateWorkspace()">
Generate Workspace JSON
</button>
</div>