Beginner needs help with "Unexpected Type Error" of a very simple watch-app

Hi, 

As a first timer i'm trying to create an app that does something with the accelerometer data, however, i can't even succeed in just printing the data on the watch screen.

I'm doing everything in Visual Studio Code and tried simulating with different types of watches.

I have an ___App.mc file which is basically empty except for: 

    public function getInitialView() as Array<Views> {
        var mainView = new $.MyView();
        return mainView as Array<Views>;
    }
And the ___view.mc in its simplified (yet still crashing) version:
import Toybox.Graphics;
import Toybox.Lang;
import Toybox.Math;
import Toybox.Sensor;
import Toybox.Timer;
import Toybox.WatchUi;

class MyView extends WatchUi.View {
    private var _dataTimer as Timer.Timer?;
    private var dt as Numeric; // [ms]
    private var _accel as Array<Float>;
    private var _width as Numeric;
    public function initialize() {
        View.initialize();
        dt = 50.0;
        _accel = new Array<Float>[3];
        _width = 0;
    }

    public function onLayout(dc as Dc) {
        _dataTimer = new Timer.Timer();
        _dataTimer.start(method(:timerCallback), dt, true);
        _width = dc.getWidth();
    }

    public function onShow() as Void {
    }

    public function onUpdate(dc as Dc) as Void {
        dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_BLACK);
        dc.clear();        
        dc.setColor(Graphics.COLOR_WHITE, Graphics.COLOR_TRANSPARENT);
        if (_accel != null) {            
            dc.drawText(_width / 2,  3, Graphics.FONT_TINY, "Ax = " + _accel[0], Graphics.TEXT_JUSTIFY_CENTER);
            dc.drawText(_width / 2, 23, Graphics.FONT_TINY, "Ay = " + _accel[1], Graphics.TEXT_JUSTIFY_CENTER);
            dc.drawText(_width / 2, 43, Graphics.FONT_TINY, "Az = " + _accel[2], Graphics.TEXT_JUSTIFY_CENTER);
        } else {
            dc.drawText(_width / 2, 3, Graphics.FONT_TINY, "no Accel", Graphics.TEXT_JUSTIFY_CENTER);
        }
    }

    public function timerCallback() as Void {
        var info = Sensor.getInfo();

        if (info has :accel && info.accel != null) {
            _accel = info.accel as Array<Float>;    
        }

        WatchUi.requestUpdate();
    }

    public function onHide() as Void {
    }
}
I've tried putting breaking points everywhere but it only stops in the initialize function and everything seems fine there.
Would be happy for some guidance what am i doing horribly wrong.. 
Thanks in advance.