alanning:role,在 angular2-meteor 中导入问题
Posted
技术标签:
【中文标题】alanning:role,在 angular2-meteor 中导入问题【英文标题】:alanning:role, importing issue in angular2-meteor 【发布时间】:2017-05-09 22:26:01 【问题描述】:我使用了 meteor 的 alanning:role
包,角色 工作正常,但问题是我收到了 "Cannot find name 'Roles"
的警告。
请帮我解决这个问题。我到处搜索过。
有些人像"import Roles from 'alanning:roles';"
一样导入它
我也试过了,但仍然出现错误... 请帮助我,请不要像 "asked issue" 中那样提交它。 我这两天一直在搜索这个问题,但我没有得到任何答案,请建议我任何帮助或请解决这个问题,提前谢谢。
【问题讨论】:
不是import Roles from 'meteor/alanning:roles';
我试过了但是不行,这个包是安装在meteor pakcages文件里的,但是还是显示没有安装,但是工作正常。
【参考方案1】:
您面临的错误是输入错误。它是一个流星包并通知打字稿您正在使用它,您必须通过导入它来告诉它。我遇到了同样的问题。其实你忘了导入
import Roles from 'meteor/alanning:roles';
在您的收藏文件或发布文件中。将其导入您的收藏和发布文件中,您将不会遇到此拼写错误。
接下来如果您在导入后遇到错误Cannot find module 'meteor/alanning:roles'
,这意味着meteor 在typings.d.ts
中没有该包的定义。有些包还没有类型定义文件。您必须在 typings.d.ts 文件中创建自己的打字稿定义,或者如果您有具有 @typings 文件夹的新 angular 2 流星样板。只需在该文件中添加此代码
declare module "meteor/alanning:roles"
export module Roles
function userIsInRole(id?: any,value?: any): boolean
function addUsersToRoles(id?: any,value?: any): boolean
对于其他出现类似错误的包,您可以创建自己的定义。
【讨论】:
在导入之前我收到此错误“找不到名称'Roles'。”导入后我收到此错误“无法找到模块'meteor/alanning:roles'。”。我知道不导入我可以使用这个包,但你怎么能指望我不导入它呢?我已经尝试过将“alanning:Roles”包导入但不导入。它在不导入的情况下工作正常,但在不导入的情况下出现错误,这就是我要导入这个包的原因。 @Habib M.Farooq 我期待这个,因为你说找不到名称'角色而不是找不到模块'流星/alanning:角色。如果您不导入 Roles,则第一个出现,如果您在 typings.d.ts 中没有该包的定义,则出现第二个。无论如何没问题我已经为你更新了我的答案:)检查一次 非常感谢您的有用回答...它工作正常,一切正常...谢谢兄弟.. :) 请不要忘记点击右边的符号将答案标记为正确,以供将来遇到同样问题的人使用! :)【参考方案2】:有一种更简单的方法可以在 typescript 中导入流星包,而无需编写自己的声明。大部分类型都在这里定义
https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/meteor
安装已定义类型的 NPM 模块。
meteor npm install --save @types/meteor-roles
导入模块中的类型
import from '@types/meteor-roles';
现在,您可以将 Roles 类型用于 addUsersToRoles() 等方法。
【讨论】:
以上是关于alanning:role,在 angular2-meteor 中导入问题的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular2 应用程序中使用 angular2-websocket 关闭 websocket 连接时,如何重新连接它?
Angular2 - angular2.dev.js:23501 例外:在 ArticleComponent 上找不到指令注释