Javascript转换函数到箭头函数
我正在使用Angualr,并具有以下类型脚本功能:Javascript转换函数到箭头函数,javascript,angular,typescript,Javascript,Angular,Typescript,我正在使用Angualr,并具有以下类型脚本功能: public watchLocationPath() { this.$scope.$watch(() => this.$location.path(), function(value) {this.console.log(value); }); } 此对象未定义,因为它超出范围。为了解决这个问题,我可以将现有的函数(值)改为使用箭头符号(这样这个对象就在范围内) 但是,当我将其转换为以下内容时 t
public watchLocationPath() {
this.$scope.$watch(() =>
this.$location.path(), function(value) {this.console.log(value);
});
}
此
对象未定义,因为它超出范围。为了解决这个问题,我可以将现有的函数(值)
改为使用箭头符号(这样这个
对象就在范围内)
但是,当我将其转换为以下内容时
this.$scope.$watch(() =>
this.$location.path(), (value) => {this.console.log(value);
});
我在编译时出错
- TSLint:在此单参数arrow函数(arrow parens)中,禁止在参数周围使用括号
- 未解析变量
控制台
欢迎任何建议。您不需要花括号,也不需要控制台使用此
this.$scope.$watch(
() => this.$location.path(),
value => console.log(value)
);
无需将location.path
包装到另一个函数中。您也可以访问控制台
,而无需此功能。
// no need to wrap single parameter like `(value)` for your tsLint config.
this.$scope.$watch(this.$location.path, value =>{
//this from parent
})
第一个错误:删除值
周围的括号。第二个错误:您不需要this.console
,只需要console
。为什么要使用this.console.log
而不是console.log
?或者,如果您喜欢这种样式,可以适当地配置arrow parens
规则。谢谢,这很有效。我需要等待10分钟才能将此标记为正确答案。