typescript plugin for component