vuejs2.x composition api 与打字稿完全兼容吗?
is vuejs2.x composition api fully compatibile with typescript?
最近我将我们的 vue.js2.x 项目迁移到 typescript,并根据 evan-you 在本期的评论:
https://github.com/vuejs/rfcs/pull/17#issuecomment-494242121
Class API 提案正在被删除。所以我使用的是 vue.js 的基于常规选项的版本,它让我遇到了很多类型问题。
我想知道 vuejs2.x composition api 是否与 typescript 完全兼容?我应该用它来解决所有问题吗?
在这种情况下,最佳做法是什么?
是的,Vue.js 与 TypeScript 兼容,因为 Vue CLI 提供内置的 TypeScript 工具支持。它只需要通过 npm
或 yarn
安装,如 here 所述,因此不需要任何额外的工具即可将 TS 与 Vue 一起使用。
给定链接中还包含一些关于 recommended configuration and basic usage 的解释。
我不确定 "fully compatible with TypeScript" 是什么意思。但是您绝对可以将 TypeScript 与 Vue 组合一起使用 API,并且 TypeScript 有助于改善代码和开发人员体验。
这里是一个使用 composition plugin with Vue 2 的例子:
import { computed, createComponent, reactive } from "@vue/composition-api";
export default createComponent({
name: "Hello",
template: `<p>{{ state.message }}</p>`,
props: {
name: {
type: String,
required: true
}
},
setup(props, context) {
const state = reactive({
message: computed(() => `Hello, ${props.name}!`)
});
return {
state
};
}
});
以上代码都写得很好。组合 API(此处:createComponent
、reactive
、computed
)提供了正确的类型。请注意,使用组合 API,我们不再需要使用 this
。
最近我将我们的 vue.js2.x 项目迁移到 typescript,并根据 evan-you 在本期的评论:
https://github.com/vuejs/rfcs/pull/17#issuecomment-494242121
Class API 提案正在被删除。所以我使用的是 vue.js 的基于常规选项的版本,它让我遇到了很多类型问题。
我想知道 vuejs2.x composition api 是否与 typescript 完全兼容?我应该用它来解决所有问题吗? 在这种情况下,最佳做法是什么?
是的,Vue.js 与 TypeScript 兼容,因为 Vue CLI 提供内置的 TypeScript 工具支持。它只需要通过 npm
或 yarn
安装,如 here 所述,因此不需要任何额外的工具即可将 TS 与 Vue 一起使用。
给定链接中还包含一些关于 recommended configuration and basic usage 的解释。
我不确定 "fully compatible with TypeScript" 是什么意思。但是您绝对可以将 TypeScript 与 Vue 组合一起使用 API,并且 TypeScript 有助于改善代码和开发人员体验。
这里是一个使用 composition plugin with Vue 2 的例子:
import { computed, createComponent, reactive } from "@vue/composition-api";
export default createComponent({
name: "Hello",
template: `<p>{{ state.message }}</p>`,
props: {
name: {
type: String,
required: true
}
},
setup(props, context) {
const state = reactive({
message: computed(() => `Hello, ${props.name}!`)
});
return {
state
};
}
});
以上代码都写得很好。组合 API(此处:createComponent
、reactive
、computed
)提供了正确的类型。请注意,使用组合 API,我们不再需要使用 this
。