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


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

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

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

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

1 2

1 ответ:

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

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

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

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

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

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