Moh*_*umb 6 typescript angular
所以我写了这段代码,这一行use(private lang: string): Promise<object>给了我一个错误“A parameter property in only allowed in constructor implementation”
当我删除访问修饰符时它会起作用,private但我只是好奇为什么它会给我这个错误以及正确的方法是什么?
@Injectable()
export class TranslateService {
public data: object = {};
constructor(private http: HttpClient) {}
use(private lang: string): Promise<object> {
return new Promise<object>((resolve, reject) => {
const langPath = `assets/i18n/${lang || 'en'}.json`;
this.http.get<object>(langPath).subscribe(
translation => {
this.data = Object.assign({}, translation || {});
resolve(this.data);
},
error => {
this.data = {};
resolve(this.data);
}
);
});
}
}
Run Code Online (Sandbox Code Playgroud)
删除私有的
use(private lang: string): Promise<object> {
Run Code Online (Sandbox Code Playgroud)
private并且public仅在类级别使用,而不是在函数级别使用(它们始终是私有的)。
类中唯一接受public或/和的函数private是构造函数,因为它将分配值并为类创建属性。
| 归档时间: |
|
| 查看次数: |
5615 次 |
| 最近记录: |