alanning: роль, проблема с импортом в angular2-meteor

Я использовал пакет alanning:role от meteor, роли работают нормально, но проблема в том, что я получаю предупреждения о том, что "Cannot find name 'Roles".

Пожалуйста, помогите мне с этой проблемой. Я искал его везде.

Некоторые импортируют это как "import { Roles } from 'alanning:roles';"

Я тоже пробовал это, но по-прежнему получаю ошибки ... Пожалуйста, помогите мне и, пожалуйста, не фиксируйте это, как в "запрошенной проблеме". Я ищу эту проблему в течение последних двух дней, но я не получил ответа. Пожалуйста, предложите мне любую помощь или, пожалуйста, разрешите эту проблему, заранее спасибо.


person Habib    schedule 24.12.2016    source источник
comment
Разве это не import { Roles } from 'meteor/alanning:roles';   -  person Michel Floyd    schedule 24.12.2016
comment
Я пробовал, но он не работает, пакет установлен в файле meteor pakcages, но он все еще показывает, что он не установлен, но работает нормально.   -  person Habib    schedule 26.12.2016


Ответы (2)


Вы столкнулись с ошибкой при вводе. Это пакет meteor, и чтобы уведомить машинописный текст о том, что вы его используете, вам нужно сообщить об этом, импортировав. Я столкнулся с такой же проблемой. на самом деле вы забыли импортировать

 import { Roles } from 'meteor/alanning:roles';

в вашем файле коллекции или опубликовать файл. Импортируйте его в свою коллекцию и опубликуйте файл, вы не столкнетесь с этой опечаткой.

Далее, если вы столкнулись с ошибкой Cannot find module 'meteor/alanning:roles' после импорта, это означает, что у метеора нет определения для этого пакета в typings.d.ts. Некоторые пакеты еще не имеют файла определения типа. вам нужно создать собственное определение машинописного текста в файле typings.d.ts или если у вас есть новый шаблон angular 2 meteor с папкой @typings. просто добавьте этот код в этот файл

declare module "meteor/alanning:roles" {
  export module Roles {
    function userIsInRole(id?: any,value?: any): boolean{  }
    function addUsersToRoles(id?: any,value?: any): boolean{ }
  }
}

для других пакетов, которые выдают подобные ошибки, вы можете создать собственное определение.

person Amit kumar    schedule 24.12.2016
comment
Перед импортом я получаю эту ошибку. Не могу найти имя «Роли». и после импорта я получаю эту ошибку. Не могу найти модуль «метеор / аланнинг: роли». . Я знаю, что без импорта я могу использовать этот пакет, но как вы можете ожидать, что я его не импортирую? Я уже пробовал пакет alanning: Roles с импортом и без импорта. он работает нормально без импорта, но я получаю сообщение об ошибке, не импортируя его, поэтому я хочу импортировать этот пакет. - person Habib; 26.12.2016
comment
@Habib M.Farooq Я ожидал этого, потому что вы говорили, что не могу найти имя «Роли» вместо «Не могу найти модуль» метеор / аланнинг: роли. первый идет, если вы не импортируете роли, а второй - если у вас нет определения этого пакета в typings.d.ts. В любом случае нет проблем, я обновил свой ответ для вас :) проверьте его один раз - person Amit kumar; 26.12.2016
comment
Большое спасибо за ваш полезный ответ ... Он сработал, и все работает нормально ... Спасибо, брат ... :) - person Habib; 27.12.2016
comment
Пожалуйста, не забудьте отметить ответ как правильный, щелкнув правой кнопкой мыши, для людей, у которых в будущем возникнет такая же проблема! :) - person Amit kumar; 27.12.2016

Есть более простой способ импортировать пакеты метеоров в машинописный текст без написания собственных объявлений. Большинство типов определены здесь

https://github.com/DefinentyTyped/DefinitiTyped/tree/master/types https://github.com/DefinitiTyped/DefinentyTyped/tree/master/types/meteor

Установите модуль NPM, для которого определены типы.

meteor npm install --save @types/meteor-roles

Импортируйте типы в свои модули

import { } from '@types/meteor-roles';

Теперь вы можете использовать тип Roles для таких методов, как addUsersToRoles () и т. Д.

person jsr    schedule 19.12.2018