0

Typescript をtsd(まだアップグレードしてtypingsいない)、React、および JSX と一緒に使用しようとしています。ビルドシステムの複雑さについて話してください...

私の.tsxファイル(Typescript + JSX)gulp-typescriptは、を使用すると(を使用して)正常にコンパイルされますimport * as React from 'react'。ただし、requireステートメントを使用するとエラーが発生します。

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

require間違ってインポートしただけで、まだ理解していない古いものと新しいものの違いがあっても驚かなかったでしょうがimport、私が得た特定のタイプの競合エラーは奇妙だと思いました.

インポートがグローバル 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" />
4

1 に答える 1