Im expecting the `arg` param to have inferred type from parent class

```
export abstract class IEngineClas {
  abstract viewer(arg: string): boolean
}

export class MyClass extends IEngineClas {
  viewer(arg) {
    return true
  }
}

```

However in practice compiler complains that `arg` has implicit type of any.

I also tried approach with an interface

```
export interface IEngine {
  viewer?: (arg: string) => boolean
}

export class MyClass implements IEngine {
  viewer(arg) {
    return true
  }
}

```

It has the same issue with compiler thinking `arg` has type of any.

Why is type-inference not working here? And what can I do to get it to work?