2016-09-04 1 views
1

debounce 라이브러리 properli를 react + typescript 프로젝트로 가져 오는 데 문제가 있습니다.reactJs + typescript + debounce - 디버깅을 제대로 가져올 수 없음

은 내가했던 내 파일에

  1. npm install debounce --save
  2. typings install dt~debounce --save --global
  3. , 수입 디 바운스 등 : import debounce from 'debounce';
  4. 사용 디 바운스와 같은 이러한 코드 내 코드와 debounce(function(){ console.log('testtt'); })();

제압은 지나가고 있지만, 내가 달릴 때 내가 무슨 일을

Uncaught TypeError: debounce_1.default is not a function

을하고있는 중이 야 : bside 난 오류가?

감사

답변

1

나는 lodash 라이브러리가 debounce 기능과 타이프의 typings을 가지고 알아 냈어.

그것은 다음과 같이 작동합니다 : 난 그냥뿐만 아니라이 문제에 실행

import _ = require('lodash'); 

... 

class SearchControl extends React.Component<ISearchControlProps, ISearchControlState> { 
    private debouncedLoadSuggestions; 
    constructor(props: any) { 
     ... 
     this.debouncedLoadSuggestions = _.debounce(this.fetchSuggestions, 500); 
    } 

    fetchSuggestions = (value: string) => { 
     ... 
    }; 

    onSuggestionsFetchRequested = ({value}) => { 
     this.debouncedLoadSuggestions(value); 
    }; 
} 
0

. debounce의 타이핑은 틀린 것 같습니다. 아마도 오래된 모듈이 아닌 라이브러리 버전 일 것입니다. 내가 그렇게 미래에 누군가를 위해 단지이 기능 ​​lodash의 모든 초래하는 경향이 아니에요,이 typings 나를 위해 작동 :

declare module "debounce" { 
    function debounce<F extends Function>(func: F, wait?: number, immediate?: boolean): F; 
    namespace debounce {} 
    export = debounce; 
} 

예 :

import * as debounce from "debounce"; 

document.body.addEventListener("mousemove", debounce((e: MouseEvent) => console.log("moved"), 500)); 
관련 문제