Wie zu verwenden Unveränderlich JS mit typisierten ES6-Klassen?
Sagen, ich habe Klassen Task
und TaskGroup
class Task{
constructor(public text:string){}
}
class TaskGroup {
constructor(public title:string = "new task group", public tasks:Task[] = []){}
}
Dann in meine Eckige 2-service-ich erstelle eine Unveränderliche Liste von TaskGroups
@Injectable()
class TaskService {
taskGroups:Immutable.List<TaskGroup>;
constructor() {
this.taskGroups = Immutable.List<TaskGroup>([new TaskGroup("Coding tasks")]);
}
}
Diese Weise nur taskGroups Liste unveränderlich ist. Was im Innern ist es nicht. Auch wenn ich Immutable.fromJS(...)
statt Immutable.List<Board>(...)
verschachtelte Objekte sind plain ol' Javascript-Objekte.
Unveränderlich JS nicht soll Klassenvererbung (Erben von Immutable-Objekt mit ES6 #562)
//can't do this!
class TaskGroup extends Immutable.Map<string, any>{
constructor(public title:string = "new task group", public tasks:Task[]){}
}
//it complained about the class not having methods like set, delete etc
So, wie man erstellen Sie Immutable Objekte der Klasse?
- Möchten Sie vielleicht einen Blick auf dieses link 😉
- die Hülle ist ein schönes Konzept. Vielleicht sollten Sie es schreiben als eine Antwort und einen link zu dem Artikel.
- getan, vielen Dank für Ihren Vorschlag ^_^
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies so tun:
Nicht perfekt, aber funktioniert.
Es kommt von diesem tollen blog-Beitrag:
https://blog.angular-university.io/angular-2-application-architecture-building-flux-like-apps-using-redux-and-immutable-js-js/
Können Sie einen wrapper mit Unveränderlich, wie dies in diese tutorial:
Hoffe, das wird helfen! 😉