如何使用 TypeScript 在 Vue2.x Class 组件中正确注释
How to do annotating correctly in Vue2.x Class component with TypeScript
我已经通过 @vue/composition-api
采纳了我的项目
// main.ts
import Vue from 'vue'
import VueCompositionApi from '@vue/composition-api'
Vue.use(VueCompositionApi)
但是在 Class 组件中设置 setup()
时,
<template>
<h1>{{ name }}</h1>
</template>
<script lang="ts">
import { ComputedRef, ref } from '@vue/composition-api'
import { Component, Vue } from 'vue-property-decorator'
function useName(): { name: ComputedRef<string> } {
const name = ref('Joe')
return { name }
}
@Component({
setup() {
const { name } = useName()
return { name }
}
})
export default class TestName extends Vue {}
</script>
我总是收到如下警告消息:
我知道这来自 Class 组件中常规 data
字段中缺少的 属性 定义。但是通过使用@vue/composition-api
,我们实际上不需要设置data
属性.
有没有人知道如何解决这个问题。
您的代码在 Vue 项目中没有错误,但您的浏览器控制台屏幕截图显示您正在使用 Nuxt。
要在 Nuxt 中使用 Composition API,请安装 @nuxtjs/composition-api
(其中包括 @vue/composition-api
,因此需要显式安装它):
npm i -S @nuxtjs/composition-api
然后在nuxt.config.js
中,将其添加为构建模块:
module.exports = {
buildModules: [
'@nuxtjs/composition-api/module'
],
}
我已经通过 @vue/composition-api
// main.ts
import Vue from 'vue'
import VueCompositionApi from '@vue/composition-api'
Vue.use(VueCompositionApi)
但是在 Class 组件中设置 setup()
时,
<template>
<h1>{{ name }}</h1>
</template>
<script lang="ts">
import { ComputedRef, ref } from '@vue/composition-api'
import { Component, Vue } from 'vue-property-decorator'
function useName(): { name: ComputedRef<string> } {
const name = ref('Joe')
return { name }
}
@Component({
setup() {
const { name } = useName()
return { name }
}
})
export default class TestName extends Vue {}
</script>
我总是收到如下警告消息:
我知道这来自 Class 组件中常规 data
字段中缺少的 属性 定义。但是通过使用@vue/composition-api
,我们实际上不需要设置data
属性.
有没有人知道如何解决这个问题。
您的代码在 Vue 项目中没有错误,但您的浏览器控制台屏幕截图显示您正在使用 Nuxt。
要在 Nuxt 中使用 Composition API,请安装 @nuxtjs/composition-api
(其中包括 @vue/composition-api
,因此需要显式安装它):
npm i -S @nuxtjs/composition-api
然后在nuxt.config.js
中,将其添加为构建模块:
module.exports = {
buildModules: [
'@nuxtjs/composition-api/module'
],
}