【问题标题】:using matb33:collection-hooks in typescript在打字稿中使用 matb33:collection-hooks
【发布时间】:2017-04-07 23:06:16
【问题描述】:

我正在创建一个 Angular2-Meteor 应用程序,从社交教程开始。我正在尝试使用 alanning:roles 和 matb33:collection-hooks 来实现用户角色。该解决方案将类似于建议的here。唯一的区别是 Angular 2 需要角色和 Collection-Hooks 的 typescript 定义。 我找到了meteor-typescript-libs,它有一个似乎有效的角色定义。但是,我发现的收集挂钩的唯一资源是 typed-meteor-collection-hooks。我尝试通过将文件复制/粘贴到我的项目中来引用index.d.ts,但我仍然收到以下错误:

server/imports/accounts.ts (30, 14): 属性 'after' 在类型 'Collection ' 上不存在。

在下面一行:

Meteor.users.after.insert(function (userId, doc) {    
if (doc.profile.type === "basic") {
    Roles.addUsersToRoles(doc._id, [ROLES.Basic])
} else if (doc.profile.type === "admin") {
    Roles.addUsersToRoles(doc._id, [ROLES.Admin])
} else if (doc.profile.type === "manager") {
    Roles.addUsersToRoles(doc._id, [ROLES.Manager])
}});

我是打字稿的新手,我不清楚应该如何为 Meteor 包实现类型定义。显然,我的方法是错误的。有人对 Meteor-Angular2 中的角色和收集钩子有任何经验吗?

更新:尽管出现错误,但似乎 Meteor.users.after.insert() 代码在插入用户后正在执行。我正在继续开发,但希望能找到消除错误的解决方案。

【问题讨论】:

    标签: typescript meteor-accounts angular2-meteor


    【解决方案1】:

    您是否尝试过从 npm 安装类型?

    https://www.npmjs.com/package/@types/meteor-collection-hooks

    不要忘记也添加到您的 tsconfig“类型”数组中,例如:

    "types": [
      "@types/meteor-collection-hooks"
    ]
    

    【讨论】:

    • 我可以确认此解决方案在安装类型后有效npm install --save (or --save-dev) @types/meteor-collection-hooks 这可能会让某些人感到困惑,因为文本编辑器可能需要一些时间来加载它,例如,在我的情况下,VS 代码至少需要 1 分钟传播。
    猜你喜欢
    • 2022-08-19
    • 2020-09-03
    • 2017-08-20
    • 2013-08-07
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多