2016-09-09 17 views
1

react-datetimeには、タイスクリプト定義ファイルが含まれていますが、私にとっては機能しません。私が見るところでは、ts definition fileは、実際にはjavascript fileDatetime)のものとは異なるタイプ(ReactDatetime)をエクスポートします。react + datetimeとreact + typescript(tsx内)の使用方法

私は先に行って、(私が考えるもの)をエクスポートするreact-datetime.d.tsタイピングファイルを変更するには、(gistで利用可能)正しいタイプである:

interface Datetime extends React.ComponentClass<DatetimepickerProps> {} 
export { Datetime } 

そして活字体は、それがDatetimeを見つけることができないことを不平を言う:

(26,10): error TS2304: Cannot find name 'Datetime'. 

かなり基本的なものがあると思います。私はタイピングとこのコンポーネントの面で欠けているはずです。たとえreact-datetime.d.tsファイルが/// <reference path="../node_modules/react-datetime/react-datetime.d.ts" />ディレクティブを使って参照されていたとしても、オリジナルの入力ファイルで機能させようとすると、最初にモジュールをインポートできなくなりました。

<Datetime/>を使用しようとしているクラスのミニマルな例:

/// <reference path="../../node_modules/react-datetime/react-datetime.d.ts" /> 
import * as React from "react"; 
import { Datetime } from "react-datetime"; 


export interface DateTimeResolutionProps { timestamp: number, resolution: number } 
export class DateTimeResolutionPicker extends React.Component<DateTimeResolutionProps, {}> { 
    render() { 
     // console.log(Datetime); 
     return (<div> 
     <Datetime/> 
     </div>); 
    } 

} 

答えて

2

あなたはReactモジュールインポートと同じようにそれをインポートする必要があります。

import * as Datetime from "react-datetime"; 

それでは、Datetimeが見つからないと不平を言うことはありません。

名の通り、あなたは名前がどうなるかを決める必要であれば、それはReactDatetimeことができます:

import * as ReactDatetime from "react-datetime"; 

同じことがReactモジュールで発生、あなたは定義ファイルを見れば、それが表示されます:

declare namespace __React { 
    ... 
} 

declare module "react" { 
    export = __React; 
} 
1

あなたが反応成分(それはSFCのかどうか、またはクラス)値にする必要があるにもかかわらず、タイプとしてDatetimeを輸出しています。だからあなたのバージョンが動作していない理由です。

The version on the repoは現在、今のところそれはCommonJS互換の構文で必要とされなければならないことを意味CommonJSモジュール、としてそれを定義しています

import Datetime = require("react-datetime"); 
関連する問題