使用matb33:打字稿中的集合挂钩

问题描述:

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

server/imports/accounts.ts (30, 14): Property 'after' does not exist on type 'Collection < User >'.

在下面一行:

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-Angular2角色和集合钩子的经验?

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

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

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

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

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

我可以证实这一点的解决方案工程一旦安装类型'NPM安装--save(或 - -save-dev)@ types/meteor-collection-hooks' 这可能会让一些人感到困惑,因为文本编辑器可能需要一些时间才能加载它,例如,VS中的代码至少需要1分钟才能传播。 –