cuentas de Meteor - usando matb33:collection-hooks en TypeScript
Estoy creando una aplicación Angular2-Meteor, empezando con el tutorial Socially. Estoy intentando implementar Roles de usuario usando alanning:roles y matb33:collection-hooks. La solución sería similar a la propuesta aquí. La única diferencia sería que Angular 2 requiere definiciones de TypeScript para Roles y Collection-Hooks. He encontrado meteor-typescript-libs, que tiene una definición para Roles que parece funcionar. Sin embargo, el único recurso para collection-hooks que encontré fue typed-meteor-collection-hooks. Intenté referenciar index.d.ts copiando/pegando el archivo en mi proyecto, pero todavía obtengo el siguiente error:
server/imports/accounts.ts (30, 14): La propiedad 'after' no existe en el tipo 'Collection
'.
En la siguiente línea:
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])
}});
Soy nuevo en TypeScript, y no me queda claro cómo debería implementar las definiciones de tipos para los paquetes de Meteor. Claramente, mi enfoque es incorrecto. ¿Alguien tiene experiencia con roles y collection-hooks en Meteor-Angular2?
ACTUALIZACIÓN: Parece que el código Meteor.users.after.insert() se está ejecutando después de insertar un usuario, a pesar del error. Estoy continuando con el desarrollo, pero agradecería una solución para eliminar el error.
Respuesta #1
¿Has intentado instalar los typings desde npm?
https://www.npmjs.com/package/@types/meteor-collection-hooks
No olvides también agregar a tu arreglo "types" en el tsconfig como:
"types": [
"@types/meteor-collection-hooks"
]
