&gt; It won&#x27;t work if each method returns a new instance, such as methods of immutable collections.<p>TS&#x27; this type does not allow that either. You have to return `this`, and nothing else.<p>This can be explained by inheritance. If you extend a class with a method returning a `this` type, but not returning `this`, somehow you should be forced to override that method. But you probably don&#x27;t want that.<p>Also, the `this` type introduced by TS is basically equivalent to Scala&#x27;s `this.type`.