dem*_*emo 0 javascript modifiers knockout.js typescript ecmascript-6
我使用 Typescript 创建了类/viewModel。我将此类中的一个字段设置为私有字段,以便在尝试获取所有其他类属性时跳过它。
对吗?我怎样才能跳过我的私有财产?
Object.keys(myObject).forEach(property => {
//some stuff
}
});
Run Code Online (Sandbox Code Playgroud)
我的班级示例:
class MyModel{
id: any = ko.observable('');
name: any = ko.observable('');
address: any = ko.observable('');
city: any = ko.observable('');
state: any = ko.observable('');
country: any = ko.observable('');
private secretField= ko.observable('');
}
Run Code Online (Sandbox Code Playgroud)
private
关键字仅影响 TypeScript 中的可见性,不影响 JS 输出。
对于原型上未定义的类属性,因此无法使用类属性装饰器进行修改,最直接的方法是使用_
私有属性的命名约定:
class MyModel {
// ...
private _secretField = ko.observable('');
}
Object.keys(myObject)
.filter(key => !(typeof key === 'string' && key.charAt(0) === '_'))
.forEach(property => {
// some stuff
});
Run Code Online (Sandbox Code Playgroud)