Framework7和Vue打字稿类型冲突

时间:2018-03-23 23:50:08

标签: typescript vue.js vuejs2 typescript-typings html-framework-7

The Framework7 docs说:

// First of all, we need to initialize/enable Framework7 Vue plugin:
// We need to pass Framework7Vue plugin and Framework7 as an arguments to Vue.use method
Vue.use(Framework7Vue, Framework7);

and in at least one place,表示' framework7'的默认导出(这里,Framework7)是构造函数或类,而不是对象:

  

new Framework7() ...

后自动播放

the Vue docs说:

  

Vue.use(插件)

     

参数:{Object |功能}插件

     

用法:安装Vue.js插件。如果插件是一个Object,它必须暴露一个   安装方法。如果它本身就是一个函数,它将被视为   安装方法。将使用Vue调用install方法   参数。

     

当多次在同一个插件上调用此方法时,   插件只会安装一次。

the vue.d.ts type definitions说:

use<T>(plugin: PluginObject<T> | PluginFunction<T>, options?: T): void;

这意味着以下是键入的版本:

import Vue from 'vue'
import Framework7 from 'framework7'
import Framework7Vue from 'framework7-vue'

Vue.use<Framework7>(Framework7Vue, Framework7); // only adding the type parameter, which eventually might not be necessary once the rest is correct

无类型版本似乎工作正常,但我无法解析Framework7的正确Typescript定义 - 可能是Framework7 .use()值参数的核心。 &#39; framework7&#39;的默认导出不能既是构造函数又是自身的实例,但我认为如果所有这些文档都是真的那就必须这样。我无法弄清楚差异在哪里。

我的工作是在这些回购中:

我可能怀疑vue.d.ts,因为其他new Framework7()Framework7作为实例,options对象.use()工作。 vue.d.ts定义是否错误,因为它们也接受函数或构造函数?但是我有太多的可能性来推理 - 我希望有人更熟悉vue.js和/或framework7可以解决这个问题。

0 个答案:

没有答案