我有一个课程如下:
class Person {
@indexField
id : number;
name : string;
}
现在我想实现一个方法(nevermind design,只是一个例子) - 这将允许我动态获取索引字段。
所以,
class Person {
@indexField
id : number;
name : string;
public function getIndex(){
//Find which property is marked with "@indexField" and dynamically return value.
}
}
这些例子让我有些困惑:https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#decorators
在模型中会出现什么样的方法?
function indexField(target, key, descriptor) {
getObjectInstanceSomehow().setIndexerField(key); //?
}
答案 0 :(得分:1)
这是怎么回事?
function indexField(target, propertyKey) {
console.log("Index property is: ", propertyKey);
target.indexKey = propertyKey
}
class Person {
@indexField
id:number;
name:string;
getIndex() {
return this['indexKey'];
}
}
let p = new Person();
console.log(p.getIndex()); // prints "id"
这只是一个例子。您可以随意存储索引propertyKey
。
资源: