Angular 2: ¿cómo detecto cambios de atributos en los atributos de entrada en un Componente?

Tengo un controlador Angular 2 que se ve así:

@Component({
  selector: 'my-component',
  template: '<div>The value is: {{ value }}</div>',
})
class MyComponent implements OnInit {
  @Input()
  value: string;

  @Output
  valueChange = new EventEmitter<number>();

  ngOnInit() {
    this.valueChange.subscribe(value => {
      console.log('new value:', value); // <-- does not get triggered
    });
  }
}

Pero cuando el valor devalue cambios desde un enlace de plantilla:

<my-component [value]="someValue" /> <!-- valueChange not triggered! -->

losvalueChange el evento no se activa, por lo que, aunque la plantilla se actualiza correctamente y muestra el nuevo valor, el componente no sabe que se ha cambiado.

¿Cómo puedo detectar cuando se cambian los atributos de entrada en mi controlador?

Respuestas a la pregunta(3)

Su respuesta a la pregunta