我想創建一個屬性的裝飾,這將允許我自動添加屬性,而無需將其寫入構造函數。我對Java/Type腳本相當陌生,所以希望我沒有把這個寫得太糟糕。我似乎無法做到這一點,這是我迄今爲止...Typescript屬性修飾器自動添加到原型
的目標是,用線沿線的東西:
class A {
@uuid
'property': string;
'another': string;
}
function uuid(target: any, key: string): void {
Reflect.defineMetadata('isUuid', true, target, key);
}
我可以在以後使用A
「的構造函數new() => Object
來獲得所有屬性的列表以及它們是否是UUID。我認爲這會是這個樣子:
Object.keys(A).forEach(key => {
console.log(`[${key}].isUuid? ${Reflect.getMetadata('isUuid', A, key) === true}`);
});
這將有望產生類似:
[property].isUuid? true
[another].isUuid? false
作爲一個說明,如果我改變A
類:
class A {
constructor() {
this.property = undefined;
this.another = undefined;
}
@uuid
'property': string;
'another': string;
}
我能得到這個工作,但我必須創建一個A
的實例,以便能夠獲取密鑰並獲取這些元數據。
爲什麼你需要非uuid屬性? – jcalz
我想要做的是使用裝飾器爲該屬性添加額外的條件。這最終將用作數據庫表的模型。 – TheHebrewHammer