Wpis z mikrobloga

Miałem taki kod%0D%0A%09%09)%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%2F%2F%20class%20B%0D%0Aclass%20PageB%20%7B%0D%0A%09public%20uniquePropertyB%3A%20string%20%3D%20'Hey!'%3B%0D%0A%09constructor(public%20name%3A%20string)%20%7B%20%7D%0D%0A%09%2F%2F%20unique%20methods%20of%20PageB%0D%0A%7D%0D%0A%0D%0Aclass%20ServiceB%20%7B%0D%0A%09private%20name%3A%20string%20%3D%20'ServiceB%20%23'%3B%0D%0A%09public%20pages%20%3D%20%5B%5D%3B%0D%0A%09private%20active%3A%20number%20%3D%200%3B%0D%0A%09%0D%0A%09get%20current()%20%7B%0D%0A%09%09return%20this.pages%5Bthis.active%5D%3B%0D%0A%09%7D%0D%0A%09%0D%0A%09constructor()%20%7B%20%7D%0D%0A%09%0D%0A%09changeActive(page%3A%20number)%3A%20void%20%7B%0D%0A%09%09this.active%20%3D%20page%3B%0D%0A%09%7D%0D%0A%09%0D%0A%09addPage()%3A%20void%20%7B%0D%0A%09%09this.pages.push(%0D%0A%09%09%09new%20PageB(this.name%20%2B%20(this.pages.length%20%2B%201))%0D%0A%09%09)%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A%0D%0Avar%20serviceA%20%3D%20new%20ServiceA()%3B%0D%0AserviceA.addPage()%3B%0D%0Aalert(serviceA.current.name)%3B%0D%0A%0D%0Avar%20serviceB%20%3D%20new%20ServiceB()%3B%0D%0A%0D%0AserviceB.addPage()%3B%0D%0AserviceB.addPage()%3B%0D%0AserviceB.addPage()%3B%0D%0AserviceB.changeActive(2)%3B%0D%0Aalert(serviceB.current.name)%3B) w mojej aplikacji. W związku z tym, że duża część się powtarza, użyłem dziedziczenia%0D%0A%09%09)%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%2F%2F%20class%20A%0D%0Aclass%20PageA%20%7B%0D%0A%09public%20uniquePropertyA%3A%20string%20%3D%20'Hello%20World!'%3B%0D%0A%09constructor(public%20name%3A%20string)%20%7B%20%7D%0D%0A%09%2F%2F%20unique%20methods%20of%20PageA%0D%0A%7D%0D%0A%0D%0Aclass%20ServiceA%20extends%20Pages%20%7B%0D%0A%09constructor()%20%7B%0D%0A%09%09super(PageA%2C%20'ServiceA%20%23')%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%2F%2F%20class%20B%0D%0Aclass%20PageB%20%7B%0D%0A%09public%20uniquePropertyB%3A%20string%20%3D%20'Hey!'%3B%0D%0A%09constructor(public%20name%3A%20string)%20%7B%20%7D%0D%0A%09%2F%2F%20unique%20methods%20of%20PageB%0D%0A%7D%0D%0A%0D%0Aclass%20ServiceB%20extends%20Pages%20%7B%0D%0A%09constructor()%20%7B%0D%0A%09%09super(PageB%2C%20'ServiceB%20%23')%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A%0D%0Avar%20serviceA%20%3D%20new%20ServiceA()%3B%0D%0AserviceA.addPage()%3B%0D%0Aalert(serviceA.current.name)%3B%0D%0A%0D%0Avar%20serviceB%20%3D%20new%20ServiceB()%3B%0D%0A%0D%0AserviceB.addPage()%3B%0D%0AserviceB.addPage()%3B%0D%0AserviceB.addPage()%3B%0D%0AserviceB.changeActive(2)%3B%0D%0Aalert(serviceB.current.name)%3B). Teraz mam problem bo kod niby kod działa, ale nie mam określonego typowania(nie działa autocomplete no bo elementy .pages są typu any).

Próbowałem użyć "generics" ale nie udało mi się puścić klasy przez parametr (tylko jej instancję), co powoduje, że nie mogę ustawić argumentu dynamicznie. Ktoś pomoże?

link%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%2F%2F%20class%20B%0D%0Aclass%20PageB%20%7B%0D%0A%09public%20uniquePropertyB%3A%20string%20%3D%20'Hey!'%3B%0D%0A%09constructor(public%20name%3A%20string)%20%7B%20%7D%0D%0A%09%2F%2F%20unique%20methods%20of%20PageB%0D%0A%7D%0D%0A%0D%0Aclass%20ServiceB%20extends%20Pages%3CPageB%3E%20%7B%0D%0A%09constructor()%20%7B%0D%0A%09%09%0D%0A%09%09%2F%2F%20super(PageB)%20nie%20dzia%C5%82a%20%2B%20nie%20%0D%0A%09%09%2F%2F%20mog%C4%99%20ustawi%C4%87%20PageB.name%20dynamicznie%20%3A(%20)%0D%0A%09%09super(new%20PageB('testB'))%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A%0D%0Avar%20serviceA%20%3D%20new%20ServiceA()%3B%0D%0AserviceA.addPage()%3B%0D%0Aalert(serviceA.current.name)%3B%0D%0A%0D%0Avar%20serviceB%20%3D%20new%20ServiceB()%3B%0D%0A%0D%0AserviceB.addPage()%3B%0D%0AserviceB.addPage()%3B%0D%0AserviceB.addPage()%3B%0D%0AserviceB.changeActive(2)%3B%0D%0A%2F%2F%20przynajmniej%20autocomplete%20dzia%C5%82a%0D%0Aalert(serviceB.current.name)%3B)

#webdev #typescript #angular2