* build: use vue-tsc to generate dts * reduce inline type declaration * fix: type checking failed * apply suggestions from code review * address PR comments