2017-01-19 1 views
3

Так что я очень новичок в машинописном машиностроении, и я очень мало знаю об этом. Но с большим количеством боли и усилий я смог заставить его работать с VueJS.Есть ли способ, которым я могу копировать копии определений типов, которые я сделал, чтобы сделать их доступными по всему миру?

Here's the template that I built.

Одна из вещей, которые я отчаянно хотел, и которые мне потребовалось много времени, чтобы выполнить это сделать так, чтобы мне не нужно импортировать Vue или любого типа декораторы как Component в каждом компоненте, бесконтрольного Я делаю. Как вы можете видеть в this particular vue file, я расширяю Vue и использую множество декораторов разных типов, и все же мне не нужно их импортировать. Для меня это так приятно.

Однако, как я это сделал, это не так уж и красиво. В основном я просто скопировал определения типов всех этих вещей в this folder. Это отстой, потому что, как только любой из этих пакетов изменит свои определения типов, мой шаблон начинает разрушаться.

Однако, я обнаружил, что если я попытался просто импортировать эти определения типов (я пробовал несколько способов), то они не доступны по всему миру во всех моих .vue файлах.

Я хотел бы знать, можно ли просто импортировать эти определения типов в одном месте и сделать их доступными для всех моих файлов .vue? Если да, может ли кто-нибудь сказать мне, как это сделать? Если это сработает, я буду так счастлив. Я действительно много дней работал над тем, чтобы это работало так же, как и я.

+0

Я не эксперт Вью (играя в течение недели теперь), но то, что приходит на ум хранит данные в виде массива в ввозу js, затем импортируйте эти данные в данные вашего корневого компонента Vue, а затем получите доступ к нему в любом дочернем компоненте, который вы хотите, с помощью этого. $ root. $ data.yourDefinitinos' (или что-то в этом роде). Скажите мне, что вы думаете, я могу отправить полный ответ, если вы пожелаете – Luke

+0

Я предполагаю, что делает что-то совершенно отличное от того, что я хочу. Я не хочу получать какие-либо данные. Я просто хочу иметь возможность использовать декораторы типов, не импортируя их. Вы видите разницу? – Evert

+0

Да, мой плохой, я вас неправильно понял. – Luke

ответ

0

Вы можете объявлять типы в global объем:

import Vue from 'vue' 
import Component from 'vue-class-component' 

declare global { 
    const VueComponent: typeof Component 
    class VueClass extends Vue {} 
} 

// From another file 
@VueComponent({ 
    props: { 
    propMessage: String 
    } 
}) 
export default class App extends VueClass { 

} 
Смежные вопросы