2017-01-23 56 views
1

我想用我自己的类型,而不是“党”类'做Angular2 /流星教程插入对象到数据库中,我在这条线的收到错误代码不能从angular2 /流星阵列

classes.forEach((class: Class) => Classes.insert(class)); 

这里是整个文件:

import { Classes } from '../../../both/collections/classes.collection'; 
import { Class } from '../../../both/models/class.model'; 

export function loadClasses() { 
if (Classes.find().cursor.count() === 0) { 
const classes: Class[] = [{ 
    name: 'Class1', 
    teacher: 'Dumbledore', 
    location: 'room 101' 
}, { 
    name: 'Class2', 
    teacher: 'Hagrid', 
    location: 'Online' 
}, { 
    name: 'Class3', 
    teacher: 'Harry Potter', 
    location: 'room 124' 
}]; 

classes.forEach((class: Class) => Classes.insert(class)); 

} 

}

这里是中其他人说,在大多数情况下同样的事情的错误代码。

服务器/进口/装置/ classes.ts(20,54):类型的参数 '的typeof(匿名类)' 不是分配给类型 '级' 的参数。

不确定它是否只是被读错了,我需要重置一些东西。我多次梳理了我的代码,找不到任何语法/拼写错误。我尝试了'流星重置'以防万一,但没有运气。

+0

所以我有这个class.model.ts文件输出接口类{ 名称:串; 老师:字符串; location:string; }是你的意思? –

回答

0

我怀疑打字稿不使用ES6保留字class(小写)作为参数名称不喜欢你。

尝试别的东西代替它(例如currentClass或任何其他除外保留字)。

使用Class(大写第一个字母)作为类或接口名称是合法的,但肯定会要求迟早在错误位置使用保留字class这一错误。

+0

是的保留字是问题,使它成为一个真正的痛苦,当一个班级规划应用程序哈哈。 –

0

我想我找到了你在做的错误。 这是你在做错误

classes.forEach((class: Class) => Classes.insert(class)); 

在这个classes.forEach应该要插入到数据库中的阵列上应用的代码。并且在这个循环中你想要将每个类插入到你的数据库表中。并且您已将数组名称和数据库集合名称作为错误的类。它如何区分?

尝试这样的事情代码

if (Head.find().cursor.count() === 0) { 
     const heads = [ 
     { head: 'javascript'}, 
     { head: 'angularjs'} 
     ]; 
    heads.forEach((defaulthead) => Head.insert(defaulthead)); 
    } 

,我同意ghybs回答。你不应该使用保留字。保留字(如JavaScript关键字)不能作为名称