0
是否可以使用裝飾器來標記具有某些自定義信息的接口的某些屬性?使用裝飾器添加元數據到接口屬性
最好用一個例子來說明:
應用狀態接口:
persistState(state) {
let newState = {};
Object.keys(state).forEach((key) => {
if (state[key] is decorated with @persist) {
newState[key] = state[key];
}
});
// Persist newState...
}
這是可能的:其中仍然存在的所有相關信息的狀態
export interface AppState {
@persist userData: UserData,
@persist selectedCompany: UserCompany,
// userCompanies should not be persisted since they are always
// fetched afresh from the server...
userCompanies: UserCompany[]
}
方法?
如果是這樣,我真的很感激一些資源,指向正確的方向!
如果不是,有沒有優雅的選擇?
不,你不能在界面上使用裝飾器,如[文檔說](https://www.typescriptlang.org/docs/handbook/decorators.html):「裝飾器提供了一種方法來添加註釋和元「**類聲明和成員**的編程語法」。接口在運行時不存在,這是你無法向它們添加修飾器的原因。你可以改變你的接口類,然後你會很好去 –
我認爲是這樣。我的應用程序狀態需要由純JS對象(redux)構建,這就是爲什麼我不能使用這個類... – suamikim
裝飾器是*實驗*功能(至少與ECMAScript相比)。它們不是ES7的一部分。 –