2016-09-19 2 views
0

TypeScript에서 _.property iteratee를 사용하는 것이 가능합니까?Lodash + TypeScript _.property iteratee shorthand

다음 예제를 고려하십시오. 어떻게 컴파일 할 수 있습니까?

let someCollection: Type1[] = [obj1, obj2]; 
let result: Type2[] = _(someCollection).filter('some.nested.property').map('another.nested.property'); 

TypeScript에서 어떻게합니까?

답변

0

이것은 짧은 솔루션이 될 것 같다 : 명시 적으로 <의 유형을 제공함으로써

let result: Type2[] = _(someCollection).filter('some.nested.property').map <Type2> ('another.nested.property'); 

> 컴파일러 (<Type2>) 만족된다. 물론 'another.nested.property'경로에 대한 기대치가 실제로 Type2의 객체를 생성하는 경우, 즉 _.property 문자열을 나중에 다른 값 (예 : 'another.thing.that.is')으로 변경하는 경우에만 실제로 유형을 안전하게 사용할 수 있습니다. 다른 ') 컴파일러는 모든 것이 정상이라고 생각하지만 실제로는 코드를 실행할 때 코드가 손상됩니다.