2017-01-23 1 views
1

'파티'대신 '유형'클래스를 사용하여 Angular2/Meteor 자습서를 작성하려고하는데이 행에서 오류가 발생합니다.angular2/유성의 배열에서 데이터베이스에 객체를 삽입 할 수 없습니다

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.forEach((class: Class) => Classes.insert(class)); 

여기에 전체 파일입니다.

server/imports/fixtures/classes.ts (20, 54) : 'typeof (Anonymous class)'유형의 인수를 'Class'유형의 매개 변수에 지정할 수 없습니다.

단지 잘못 읽히고 뭔가를 재설정해야하는지 확실하지 않습니다. 내 코드를 여러 번 샅샅이 뒤지고 구문/맞춤법 오류를 찾을 수 없습니다. 나는 단지 '유성 재설정'을 시도했지만 그 경우에는 운이 없다.

+0

그래서이 class.model.ts 파일 내보내기 인터페이스 클래스 { name : string; teacher : string; 위치 : 문자열; } 그게 무슨 뜻입니까? –

답변

0

필자는 Typescript가 ES6 예약어 class (소문자)을 인수 이름으로 사용하는 것을 좋아하지 않는다고 생각합니다.

다른 것으로 바꾸어보십시오 (예 : currentClass 또는 다른 예약어 제외).

Class (대문자 첫 글자)을 클래스 또는 인터페이스 이름으로 사용하는 것은 합당합니다. 그러나 확실히 조만간 잘못된 곳에서 예약어 class을 사용하는 실수를 저지합니다.

+0

예 예약어가 문제 였으므로 수업 계획 수립자를 하하 할 때 정말 고통 스럽습니다. –

0

나는 당신이하고있는 실수를 발견했다고 생각합니다. 이 당신이 데이터베이스에 삽입하려는 배열에 적용해야이 classes.forEach에서 실수

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

을하고있는 코드입니다. 이 루프 안에는 각 클래스를 데이터베이스 테이블에 삽입하려고합니다. 배열 이름과 데이터베이스 콜렉션 이름을 모두 잘못된 클래스로 사용했습니다. 차별화되는 방법?

이 코드

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

같은 것을 시도하고 ghybs 대답에 나는 동의하고있다. 예약어를 사용하면 안됩니다. 예약어 (예 : 자바 스크립트 키워드)는 이름으로 사용할 수 없습니다.

관련 문제