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 ^_^
Schreibe einen Kommentar