根据Vue中的属性(使用JSX)进行Typescript类泛型键入

时间:2019-06-19 00:03:49

标签: typescript vue.js tsx

我使用Typescript和vue-tsx-helper包来声明泛型,并使用vue-property-decorator来声明将类转换为Vue组件的道具,模型,emit方法等。以下代码示例是我的组件的声明:

@Component({
    name: 'ButtonElementMixin',
})
class ButtonElementMixin extends VueComponent<{
    type?: availableButtonTypes,
    state?: availableButtonStates,
}> {
    @Prop() type: availableButtonTypes = BUTTON_TYPE_BUTTON;
    @Prop() state ?: availableButtonStates;
}

需要在IDE(WebStorm)中将vue属性装饰与TSX完成结合起来

example usage

这意味着我必须两次声明类型:在属性/方法和泛型中。

是否有任何方法可以在TSX命名空间(或其他地方)中声明类型,以便应从props /方法中使用通用的props并减少第一个包的使用(vue-tsx-helper)?

不幸的是,我靠打字稿不能很好地靠自己解决这个问题或在网上找到答案。

0 个答案:

没有答案