add typescript support
add typescript support