I see contradicting info about this. <https://basarat.gitbooks.io/typescript/content/docs/classes.html> (go to inheritance section) here says it's supported but I see my code failing to compile in TypeScript [playGround](https://www.typescriptlang.org/play/index.html#src=class%20Point%7B%0D%0A%09x%3Anumber%3B%20%0D%0A%09y%3Anumber%3B%0D%0A%09constructor(x%3Anumber%2C%20y%3Anumber)%7B%0D%0A%09this.x%20%3D%20x%3B%0D%0A%09this.y%20%3D%20y%20%3B%09%0D%0A%09%7D%0D%0A%09%0D%0A%09add(point%3APoint)%7B%0D%0A%09%20return%20new%20Point(this.x%20%2B%20point.x%20%2C%20this.y%20%2B%20point.y)%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0Aclass%20Point3D%20extends%20Point%7B%0D%0A%09z%3Anumber%3B%0D%0A%09constructor(x%3Anumber%2C%20y%3Anumber%2C%20z%3Anumber)%7B%0D%0A%09%09super(x%2Cy)%3B%0D%0A%09%09this.z%20%3D%20z%3B%0D%0A%09%7D%0D%0A%09%0D%0A%09add(point3d%3APoint3D)%7B%0D%0A%09%09var%20point2D%20%3D%20super.add(%20%7Bpoint3d.x%2C%20point3d.y%7D)%3B%0D%0A%09%09return%20new%20Point3D(point2D.x%2C%20point2D.y%2C%20this.z)%3B%0D%0A%09%7D%0D%0A%7D%0D%0A%0D%0A%0D%0A) 

```
class Point{
    x:number; 
    y:number;
    constructor(x:number, y:number){
    this.x = x;
    this.y = y ;    
    }

    add(point:Point){
     return new Point(this.x + point.x , this.y + point.y);
    }
}

class Point3D extends Point{
    z:number;
    constructor(x:number, y:number, z:number){
        super(x,y);
        this.z = z;
    }

    add(point3d:Point3D){
        // Error does not support duct type.
        var point2D = super.add( {point3d.x, point3d.y}); 
        return new Point3D(point2D.x, point2D.y, this.z);
    }
}

```