kahirokunn
twitter: https://twitter.com/kahirokunn
qiita: https://qiita.com/kahirokunn
iCareでフロントの技術顧問させて頂いてる
Vue Composition APIのお陰でコンポーネント自身の型定義や記述の満足度は向上した
マジ最高!
もうこれで書いていくべさ!
<template>
<div>
<h2>mouse pointer</h2>
<div>x: {{ x }}</div>
<div>y: {{ y }}</div>
<button @click="setDummyPos">setDummyPos</button>
</div>
</template>
<script lang="ts">
import { createComponent } from "@vue/composition-api";
import { useMouse } from "@/hooks/useMouse";
export default createComponent({
setup() {
const { x, y } = useMouse();
return {
x,
y,
};
}
});
</script>
いざ、Vue composition apiで書いたコンポーネントを組み合わせてコンポーネントを作る!
.vueファイルから何がexportされてるかtypescriptがわからない
.vueファイルから何がexportされてるかtypescriptがわからない
解決策1: .vue拡張子からVueがexportされてる事にする
欠点
解決策2: .vue拡張子の型定義ファイルを自分で1つずつ書く
欠点
解決策3: .vue拡張子の型定義ファイルを自動生成ツールを作る
これも自動生成した型定義ファイル
※ 元々ktsnさんのvuetypeというtsの型定義生成の実装はあったが、見た感じプロトタイプであり、何年か前にメンテされなくなっており、最新版だと動かない。なのでそれをフォークして作っている
自分でやろうと思ったきっかけはtakepepeさんのcomiler api本
←のソースから↓の.d.tsが出力されてる
公開したpackageのinstall方法は yarn add -D @kahirokunn/vuedts