我已经使用 meteor 的alanning:role
包,角色工作正常,但问题是我收到"Cannot find name 'Roles"
的警告。
请帮我解决这个问题。我到处搜索过它。
有人将其导入为"import { Roles } from 'alanning:roles';"
我也尝试了这个,但仍然有错误... 请帮助我,请不要像"问题" 那样提交。 我过去两天都在搜索这个问题,但我没有回答,请给我任何帮助,或者请事先解决这个问题。
答案 0 :(得分:8)
您遇到的错误是输入错误。它是一个流星包,并通知打字稿你正在使用它你必须通过导入它告诉它。我遇到了同样的问题。实际上你忘了导入
import { Roles } from 'meteor/alanning:roles';
在您的收藏文件或发布文件中。将其导入您的收藏夹&发布文件你不会遇到这个拼写错误。
接下来,如果您在导入后遇到错误Cannot find module 'meteor/alanning:roles'
,则表示meteor在typings.d.ts
中没有该包的定义。有些软件包还没有类型定义文件。你必须在typings.d.ts文件中创建自己的打字稿定义,或者你有新的带有@typings文件夹的角度2流星样板。只需在该文件中添加此代码
declare module "meteor/alanning:roles" {
export module Roles {
function userIsInRole(id?: any,value?: any): boolean{ }
function addUsersToRoles(id?: any,value?: any): boolean{ }
}
}
对于提供类似错误的其他包,您可以创建自己的定义。
答案 1 :(得分:0)
有一种更简单的方法可以在打字稿中导入流星雨包而无需编写自己的声明。大部分类型在此处定义
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()等方法。