首页 > 解决方案 > 为什么我们在处理 vue 组件时会丢失 typescript 类型检查?

问题描述

(我对 Vuejs 和 Typescript 有经验,但在这个论坛上是新手)。(我试图找到这个话题但没有成功)。

我喜欢 Typescript 执行的类型检查,非常有帮助。但是,在 vuejs 和 typescript 之间,有时会丢失类型,然后是类型检查。

具体例子:

在我的 vuejs 程序中,我有:

<script lang="ts">
import * as utils from “…/utils/utils”;
...
methods: {
  runProjectsQuery: function () {
  utils.processProjects(this);
  },
},
...

因此,您了解 processProjects 是在 utils.ts 中实现的,例如:

export function processProjects(myVueComponent: any): void {
 ...
 myVueComponent.myField = "foo";
 ...
}

到目前为止,一切都很好,除了 myVueComponent 是 any 类型,我失去了 typescript 完成的所有非常有用的类型检查。更准确地说,如果我在 processProjects() 中声明了具有精确类型的东西,它工作正常,类型检查工作正常。但是当我使用 myVueComponent.myField 时,由于 myVueComponent 被声明为 any,与 myVueComponent.myField 关联的相关类型检查就会丢失。我强调我被迫将 myVueComponent 声明为“任何”这一事实。

你遇到过这个问题吗?你有解决方案吗 ?

提前致谢。问候。

标签: typescriptvue.jsthistypechecking

解决方案


推荐阅读