簡體   English   中英

為什么require('react')與打字稿會導致“導入聲明沖突”?

[英]Why does require('react') cause “Import declaration conflicts” with typescript?

我試圖使用帶有打字稿tsd (還沒有升級到typings還),反應,JSX一起......噢,我的! 談論構建系統的復雜性...

.tsx文件(打字稿+ 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" />

react-global.d.ts

不要在全局安裝react。 我很高興看到您已經在使用模塊(更多https://github.com/basarat/typescript-book/blob/master/docs/tips/outFile.md ),所以使用install react作為輸入typings install dt~react --save這將安裝模塊react,然后您可以import * as React from "react";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM