из этот ответ SO
Вы можете иметь переменную 'heigth' и функцию, которая получает textArea:
heigth = "1.125rem";
changeHeigth(textArea) {
this.heigth = null;
setTimeout(() => {
this.heigth = textArea.scrollHeight + "px";
});
}
Для "автоматического размера" это Сначала необходимо установить значение null, а затем на следующем шаге значение scrollHeigth. Это причина для использования setTimeout
Итак, вы управляете высотой в (фокус) (размытие) и (ввод)
<textarea #textArea [style.height]="heigth"
(input)="changeHeigth(textArea)"
(focus)="heigth=textArea.scrollHeight+'px'"
(blur)="heigth='1.125rem'"></textarea>
, см. Простой пример в stackblitz