import Vue = require ( 'vue' ) ; import * as vts from 'vue-typescript-component' ; export interface ChildListener { inc ( ) : void ; dec ( ) : void ; greet ( text ) : void ; } @ vts . component ( ) export default class Child extends Vue { @ vts . prop ( ) listener : ChildListener ; name = 'child' ; inc ( ) { this . listener . inc ( ) ; } dec ( ) { this . listener . dec ( ) ; } greet ( msg ) { this . listener . greet ( msg ) ; } created ( ) { this . inc ( ) ; } }