小编J. *_*eer的帖子

有没有办法在 vuejs 中获取组件的类型?

我正在用打字稿构建一个 vuejs 应用程序。我想最大限度地利用可用的类型。

大多数情况下,类型和类型推断都可以正常工作。

在某些代码中,我想传递对特定组件类型的引用。IE

const MyComponent = Vue.extend({...});

function myFunction(someComponent: MyComponent) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致错误:

'MyComponent' refers to a value, but is being used as a type here.

有效的方法是,我创建一个实例,然后在函数声明中使用该实例的 typeof:

const MyComponent = Vue.extend({...});

let myComponentInstance = new MyComponent();
function myFunction(someComponent: typeof myComponentInstance ) {
    ...
    someComponent.someProperty;
    ...
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点而不必创建一个实例MyComponent?对我来说,感觉应该是可能的,因为知识就在那里。

编辑:

在@Bill-Naylor 的建议下,我把它归结为这个。

const MyComponent =  Vue.extend({
    data() {
        return {
            test: "test"
        }
    }
});

let dummy = () => new MyComponent();
export type MyComponentInstance = …
Run Code Online (Sandbox Code Playgroud)

typescript vue.js

8
推荐指数
1
解决办法
1757
查看次数

标签 统计

typescript ×1

vue.js ×1