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?
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