Trying to inject ViewSlot into a skeleton based esnext project, the following error shows up in the browser. I have just created a simple project with the CLI based on systemjs and I see the same thing.
vendor-bundle.js:1398 Unhandled rejection Error: Error invoking ViewSlot. Check the inner error for details.
Inner Error:
Message: Cannot set property ‘viewSlot’ of undefined``
from a modified CLI generated app, this reproduces the same problem I see in the real app,
import { BoundViewFactory, ViewSlot, customAttribute, templateController, inject } from 'aurelia-framework';
@inject(ViewSlot)
export class App {
constructor(viewSlot) {
this.message = 'Hello World!';
this.viewSlot = viewSlot;
}
}
you dont inject ViewSlot, use it like a class
https://github.com/aurelia-v-grid/vGrid/blob/dev-rebuild/src/aurelia-v-grid/grid/loadingScreen.ts
maybe not the best sample but might help u 
Thanks for the reply, your sample helps 
A bit confused though as I see this from the cheat sheet on this site and many other samples that seem to inject ViewSlot. Maybe some design changes have occurred?
import {BoundViewFactory, ViewSlot, customAttribute, templateController, inject} from 'aurelia-framework';
@customAttribute('naive-if')
@templateController
@inject(BoundViewFactory, ViewSlot)
export class NaiveIf {
constructor(viewFactory, viewSlot) {
this.viewFactory = viewFactory;
this.viewSlot = viewSlot;
}
valueChanged(newValue) {
if (newValue) {
let view = this.viewFactory.create();
this.viewSlot.add(view);
} else {
this.viewSlot.removeAll();
}
}
}