Always declare types of everything, whether they be properties, arguments, or return values of functions. In your case, your template is treating textInput as a property (which is good), but in the controller it is a method (which is bad). Make textInput a property in the controller.
if I see it correct, then you have in html a property binding like
[navPush]="insertTex"
On ts side is there no variable insertTex or a function that return something you can bind.
You have a function insertText, that’s return is void. AFAIK [navPush] needs a reference to a page (see doc). If you change return type void, then will still nothing happen, because there is no return inside.
Maybe easier is to declare a variable called insertTex that hold your reference like
insertTex = myreference;
IMHO is [navPush] a directive you can replaced by (click)=‘mymethod()’, where mymethod contain the logic of your navigation. I personal like this approach more because it is more agnostic,