import { TController } from "./TController"; import FooExample2 from "./foo_example2_controller"; export default class extends TController({ el: HTMLDivElement, values: { foo: String, bar: Boolean, }, targets: { button: HTMLButtonElement, }, outlets: { "foo-example2": FooExample2, }, }) { connect() { this.element satisfies HTMLDivElement; this.fooValue satisfies string; this.hasFooValue satisfies boolean; this.barValue satisfies boolean; this.hasBarValue satisfies boolean; this.buttonTarget satisfies HTMLButtonElement; this.hasButtonTarget satisfies boolean; this.fooExample2Outlet.customMethod() satisfies "!"; this.fooExample2Outlet.hasBazValue satisfies boolean; this.fooExample2Outlet.bazValue satisfies boolean; console.log("hello from example controller", { el: this.element, button: this.buttonTarget, foo: this.fooValue, bar: this.barValue, }); // {el: div, button: button.btn.btn-primary, foo: 'foo', bar: false} } }