Конфликт между типизацией в Framework7 и Vue
Документы Framework7 говорят:
// 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);
и по крайней мере в одном месте, указывая, что экспорт по умолчанию 'framework7' (здесь, Framework7
) является функцией или классом конструктора, а не объектом:
Автоматически после
new Framework7()
...
И документы Vue говорят:
Vue.use (плагин)
Аргументы: {Объект | Функция} плагин
Использование: Установите плагин Vue.js. Если плагин является объектом, он должен предоставлять метод установки. Если это сама функция, она будет рассматриваться как метод установки. Метод установки будет вызван с аргументом Vue.
Когда этот метод вызывается для одного и того же плагина несколько раз, он будет установлен только один раз.
И определения типа vue.d.ts говорят:
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
Нетипизированная версия, кажется, работает правильно, но я не могу найти правильные определения Typescript для Framework7 - возможно, центральное место в Framework7
значение аргумента для .use()
, Экспорт по умолчанию 'framework7' не может быть одновременно функцией конструктора И самим экземпляром, но я думаю, что так и должно быть, если все эти документы верны. Я не могу понять, где расхождение.
Моя работа в этих репозиториях:
Я мог бы подозревать vue.d.ts, так как оба new Framework7()
в другом месте и мимоходом Framework7
как пример, options
Возражать .use()
Работа. Являются ли определения vue.d.ts неправильными в том, что они также принимают функцию или конструктор? Но у меня слишком много возможностей, чтобы рассуждать - я надеюсь, что кто-то, более знакомый с vue.js и / или framework7, сможет распутать это для меня.