我正在尝试使用我自己的类型'class'而不是'party'来执行Angular2 / Meteor教程,我在这行代码中遇到错误
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));
}
}
以下是错误代码,其中大部分内容都是相同的。
server / imports / fixtures / classes.ts(20,54):类型'typeof(匿名类)'的参数不能分配给'Class'类型的参数。
不确定是否只是读错了我需要重置一些东西。我已多次梳理我的代码,无法找到任何语法/拼写错误。为了以防万一,我尝试了“流星重置”,但没有运气。
答案 0 :(得分:0)
我怀疑Typescript不喜欢你使用ES6保留字class
(小写)作为参数名称。
尝试用其他内容替换它(例如currentClass
或除了另一个保留字之外的其他内容。)
使用Class
(大写第一个字母)作为类或接口名称是合法的,但是肯定会在迟早的错误地方使用保留字class
这样的错误
答案 1 :(得分: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关键字)不能用作名称