binding []
для объектов, без него значение является строкой. Будьте осторожны с типами.
В коде
<div [myDirective]="myDefaultText" [myEnabled]="true" [myText]="abc"></div>
вы пытались связать объект, но объект недоступен, поэтому его значение равно undefined
. С другой стороны, если вы удаляете привязку, тогда объект ушел, у вас есть только значение string
, присвоенное этому свойству.