我一直在擺弄與打字稿裝飾,我有一個簡單的問題,假設我有一個定製的裝飾叫做RetainType
像這樣一類:是否可以將TypeScript裝飾器應用於類中的所有字段?
class Person {
@RetainType name: string;
@RetainType age: number;
@RetainType dateOfBirth: Date;
}
我想能寫:
@RetainType class Person {
name: string;
age: number;
dateOfBirth: Date;
}
換句話說,是否有任何方法可以將裝飾器應用於類中的所有屬性?我使用@RetainType
發送有關各個屬性的元數據(設計:專門類型)。有一個更簡潔的方法,比逐個註釋所有字段更好。
'RetainType'做什麼?你可以添加代碼嗎? –
從字面上看,它是一個空的裝飾器,我只是用它來強制TypeScript編譯器生成設計:鍵入元數據(請參閱https://www.typescriptlang.org/docs/handbook/decorators.html)。 –
不,你不能用類裝飾器做到這一點,因爲當裝飾器函數被調用時,屬性將不會從類構造器中獲得。您可以爲每個屬性添加@ @ Reflect.metadata(「design:type」,PROPERTY_TYPE)',然後用類裝飾器以某種方式使用這些屬性,但我不明白這比使用'RetainType'裝飾器好多了。 –