Там нет никакой гарантии, что ваши типы совместимы, поэтому вы должны дважды бросок, согласно следующим ...
class class1 {
constructor(public owner: number) {
}
}
class Example<T> {
add(element: T) {
if (element instanceof class1) {
(<class1><any>element).owner = 100;
}
}
}
Конечно, если вы используете общие ограничения типа, можно удалить отлит и проверка ...
class class1 {
constructor(public owner: number) {
}
}
class Example<T extends class1> {
add(element: T) {
element.owner = 100;
}
}
Это используя class1
как ограничение, но вы можете решить использовать интерфейс, что любой класс должен удовлетворять действительным - например, он должен иметь свойство с именем owner
из тип number
.