2016-05-31 7 views
0

tsdでTypescriptを使用しようとしています(まだtypingsにアップグレードされていません)、React、JSXともに... oh my!なぜrequire( 'react')がtypescriptと "Import declaration conflicts"を引き起こすのですか?

import * as React from 'react'を使用すると、私の.tsxファイル(Typescript + JSX)が正常にコンパイルされます(gulp-typescriptを使用)。私はちょうどそれが間違ってインポートした場合、私は驚いされなかったであろうと私は持っていない古いrequireと新しいimportの間にいくつかの違いがある

./typings/react/react-global.d.ts(17,1): error TS2440: Import declaration conflicts 
with local declaration of 'React' 

:私はrequireステートメントを使用するとき、私は、しかし、エラーが発生しますまだgrokkedしかし、私は私が得た特定のタイプの競合エラーが奇妙だと思った。

グローバルなtsd宣言とのやりとりの仕方が分かりますが、requireステートメントはここでエラーを起こすのはなぜですか?ここで

は私index.tsx次のとおりです。ここで

/// <reference path="../typings/tsd.d.ts" /> 

const config = require('../config') 
const express = require('express') 
const reactDomServer = require('react-dom/server') 
const app = express() 

// THIS WORKS 
import * as React from 'react' 

// THIS DOES NOT 
//const React = require('react') 

app.get('/', (req, res) => { 
    const element = <h1>Hello Denver!</h1> 
    res.send(reactDomServer.renderToString(element)) 
}) 

const server = app.listen(process.env.port || config.port,() => 
    console.log(`Server listening on port ${server.address().port}!`) 
) 

は私../typings/tsd.d.tsです:

/// <reference path="react-router/history.d.ts" /> 
/// <reference path="react-router/react-router.d.ts" /> 
/// <reference path="react/react-addons-create-fragment.d.ts" /> 
/// <reference path="react/react-addons-css-transition-group.d.ts" /> 
/// <reference path="react/react-addons-linked-state-mixin.d.ts" /> 
/// <reference path="react/react-addons-perf.d.ts" /> 
/// <reference path="react/react-addons-pure-render-mixin.d.ts" /> 
/// <reference path="react/react-addons-test-utils.d.ts" /> 
/// <reference path="react/react-addons-transition-group.d.ts" /> 
/// <reference path="react/react-addons-update.d.ts" /> 
/// <reference path="react/react-dom.d.ts" /> 
/// <reference path="react/react-global.d.ts" /> 
/// <reference path="react/react.d.ts" /> 
/// <reference path="node/node.d.ts" /> 
/// <reference path="express-serve-static-core/express-serve-static-core.d.ts" /> 
/// <reference path="express/express.d.ts" /> 
/// <reference path="mime/mime.d.ts" /> 
/// <reference path="serve-static/serve-static.d.ts" /> 
+0

をインストールすると、あなたは 'import'や' require '何でも。モジュールを使用している場合、グローバル参照は使用しないでください。 – Aaron

+0

あなたが言ったことは理にかなっています。しかし、インポートを取り除くか、要求すると、私はReact "undefined'エラーを受け取ります。何らかの輸入が必要なようです。 –

+0

あなたは '

関連する問題