2017-03-31 13 views
0

개발을 위해 angularjs2 + Meteor를 사용하고 있습니다. 여기 Problen 나는 다음과 같은 스타일로 쓰기 모델을했습니다 있다는 것입니다 - 여기안전한 타이프 스크립트 모델

export interface temp { 
    name: string; 
    count: number;  
} 

문제는, 내가, 파일 확장자에 대한 타이프 라이터를 사용하고 있다는 것입니다 때문에 컴파일 후에는 원래의 텍스트로 변환됩니다. 따라서이 모델은 안전하지 않습니다. 사용자는 모든 유형의 데이터를 삽입 할 수 있습니다. 이것이 주요 문제입니다.

meteor + reactJs 앱에서 보안을 제공하는 Meteor.collection을 사용했습니다. 그러나 여기에서 모형을 타이프 스크립트로보다 안전하게 만들 수있는 방법은 무엇입니까?

답변

1

TypeScript는 런타임 형식 검사를 제공하지 않습니다. 직접 작성해야합니다.

ensureArgIsTemp(arg: temp): arg is temp { 
    if (!arg 
     || Object.keys(arg).length !== 2 
     || typeof arg.name !== "string" 
     || typeof arg.count !== "number") 
    throw new Error("The given object does not match the interface `temp`"); 

    return true; 
} 

실험용 데코레이터를 사용하여 일부 작업을 자동화 할 수 있습니다. http://blog.wolksoftware.com/decorators-metadata-reflection-in-typescript-from-novice-to-expert-part-4

+0

@Knagis 유성치있는 간단한 스키마를 타이프 ​​스크립트로 어떻게 사용할 수 있는지 알고 있습니까? 그것의 나의 질문. – Shubham

+0

@Shubham 다음 질문에 명시 적으로 명시하십시오. – ghybs