2017-01-06 3 views
0

나는 아마 뭔가 잘못하고 있지만 어쨌든 어떤 도움을 주시면 감사하겠습니다. 나는 typescript 2 + jspm을 사용하고있다. 나는 typeRoots유형 (유형 이름에 버전 번호 추가)을 사용하여 tsconfig 내의 모든 가능성을 시도했다고 생각합니다. 나는 그것이해야한다고 생각하는 반면 나의 현재 설정은typescript 및 jspm과 함께 lodash 사용

package.json

"jspm": { 
    "dependencies": { 
     "lodash": "npm:[email protected]^4.17.4" 
    }, 
    "devDependencies": { 
     "@types/lodash": "npm:@types/[email protected]^4.14.45", 
     "babel": "npm:[email protected]^5.8.24", 
     "babel-runtime": "npm:[email protected]^5.8.24", 
     "core-js": "npm:[email protected]^1.1.4", 
     "systemjs": "npm:[email protected]^0.19.41" 
    } 
    } 

tsconfig.json ...

"typeRoots": [ 
    "jspm_packages/npm/@types" 
] 

그리고 컴파일러는 다음을하고 작동하지 않는 것입니다 모르겠다.

import * as _ from "lodash" 
내가 가져 오기를 제거 경우 타이프 라이터의 문서 이제 https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

에 의해 제안

내가

Cannot find module 'lodash'. 

를 얻을 재미있는 것은 vcode 병합 방법 정의 (F12)의 경우를 찾아 갈 수 있다는 것이다 나는 다음 코드 줄을 쓰기

_.merge(a, b); 

하지만 컴파일러는 여전히 불만이

Identifier '_' must be imported from a module 

아이디어가 있으십니까? :)

+0

문제없이 다른 모듈을 가져올 수 있습니까, 아니면 그냥 문제가되는 lodash입니까? –

+0

pb없이 다른 모듈을 사용하고 있습니다. –

답변

0

이 정말 해결책이 아니다하지만 지금은 불평 타이프 라이터 컴파일러를 방지하기 위해이 내가 방법 서명

주에 대한 완료를 할 때

declare const _: any; 

난 그냥 그 라인을 제거하는 일입니다 내가 로다시를 가져올 때

System.import('lodash').then((lodash) => { 
    window._ = lodash; 
});