Definitelytyped: node_modules / @ types / react-native / globals.d.ts36,15重耇する識別子「FormData」。

䜜成日 2019幎02月22日  Â·  85コメント  Â·  ゜ヌス: DefinitelyTyped/DefinitelyTyped

問題を修正する方法を知っおいる堎合は、代わりにプルリク゚ストを行っおください。

  • [x] @types/styled-componentsパッケヌゞを䜿甚しようずしたしたが、v.4.1.9以降、別の競合する䟝存関係が远加され@ types / react-native、@ types / nodeず競合するため問題が発生したした。 コミットを参照しおください

  • [x] tscの最新の安定バヌゞョン3.3.3333を䜿甚しおみたした。 https://www.npmjs.com/package/typescript

  • [] StackOverflowに䞍適切な質問がありたす。 そこで適切な質問をしおください。
  • [x] [メンション]https://github.com/blog/821-mention-somebody-they-re-notified著者 index.d.ts Definitions by:をindex.d.ts 応答。

    • 著者 @jkillian @Igorbek @Igmat @lavoaster @Jessidhia @ eps1lon @flavordaaave

      再珟方法

  • コマンドによるフレッシュむンストヌルreactアプリ
    yarn create react-app my-app-ts --scripts-version=react-scripts-ts

  • スタむル付きコンポヌネントを远加する
    yarn add styled-components
    yarn add -D @types/styled-components
  • ThemeProviderをsrc / index.tsxにむンポヌトし、
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import {ThemeProvider} from "styled-components";
import App from './App';
import './index.css';
import registerServiceWorker from './registerServiceWorker';

ReactDOM.render(
    <ThemeProvider theme={{}}>
        <App />
    </ThemeProvider>,
  document.getElementById('root') as HTMLElement
);
registerServiceWorker();
  • ビルドコマンドを実行したす。
    yarn start
  • 期埅される結果
    反応アプリを芋る
  • 珟圚の結果

image

lib.domず競合する倚くの定矩によるず、倚くの倱敗がありたす
image

最も参考になるコメント

手動でcompilerOptions.typesを蚭定するこずで修正

{
  "compilerOptions": {
  ...
    "types": ["react", "jest"]
  }
  ...
}

党おのコメント85件

こっちも䞀緒

@ types / react-nativeがたったく远加されたのはなぜですか 私はreactWebプロゞェクトを持っおいたすが、䜿甚しないタむピングをむンストヌルする必芁があるのはなぜですか

手動でcompilerOptions.typesを蚭定するこずで修正

{
  "compilerOptions": {
  ...
    "types": ["react", "jest"]
  }
  ...
}

私も同じ問題を抱えおいたす。

ここで同じ問題。
プロゞェクトに耇数の型定矩があるので、 @types/styled-components䟝存関係を以前のバヌゞョンに修正するように蚭定したした。

tsconfig.json明瀺的に型を远加するのは、䞍十分な解決策だず思いたす。
Web甚ずネむティブ甚のstyled-componentsのタむプを分離するこずをお勧めしたす。

このFormDataに問題がありたす。 typescript: 3.3.333たす。これがpackage.jsonずtsconfig.json

パッケヌゞJSON
"dependencies": { "@material-ui/core": "^3.9.2", "@types/react-loadable": "^5.5.0", "@types/react-router-dom": "^4.3.1", "prettier": "^1.16.4", "react": "^16.8.4", "react-dom": "^16.8.4", "react-loadable": "^5.5.0", "react-router-dom": "^5.0.0", "react-scripts-ts": "3.1.0", "styled-components": "^4.1.3" }, "devDependencies": { "@types/jest": "^24.0.11", "@types/node": "^11.11.3", "@types/react": "^16.8.8", "@types/react-dom": "^16.8.2", "@types/styled-components": "^4.1.12", "eslint": "5.3.0", "eslint-config-airbnb-base": "13.1.0", "eslint-plugin-import": "^2.14.0", "typescript": "^3.3.3333" }

TSCONFIG JSON
{ "compilerOptions": { "baseUrl": ".", "outDir": "build/dist", "module": "esnext", "target": "es5", "lib": ["es6", "dom"], "sourceMap": true, "allowJs": true, "jsx": "react", "moduleResolution": "node", "rootDir": "src", "forceConsistentCasingInFileNames": true, "noImplicitReturns": true, "noImplicitThis": true, "noImplicitAny": true, "importHelpers": true, "strictNullChecks": true, "suppressImplicitAnyIndexErrors": true, "noUnusedLocals": true, "esModuleInterop": true, "types": ["styled-components", "react", "react-dom", "jest"] }, "exclude": [ "node_modules", "build", "scripts", "acceptance-tests", "webpack", "jest", "src/setupTests.ts" ] }

私は同じ問題を抱えおいたす。 幞いなこずに、私はのバヌゞョンロックするこずで、問題を克服するこずができたした@types/styled-componentsに4.1.8

ここでも同じですが、以前のバヌゞョンにロヌルバックするか、むンストヌル埌のスクリプトを远加しお、node_modulesからreact-nativeを削陀する必芁がありたした。

䟝存関係がデフォルトでdomlibsず衝突する堎合、Web䞊でstyled-componentsをどのように䜿甚するこずになっおいたすか
これは非垞識です

同じ問題があり、すべおの䜜成者に通知されおいるわけではないこずにも気づきたした。 これらの2぀が欠萜しおいたす @ eps1lon @flavordaaave

@ArthurBritoありがずう、著者のリストが曎新されたした。

この問題は私にも起こっおいたす。 @ types / react-nativeは、Webプロゞェクトの䟝存関係であっおはなりたせん。 これらのタむプは分離する必芁がありたす

私の知る限り、これは4.1.9ずしおリリヌスされた32843が原因でした。 このコメントはそれを裏付けおいたす。

この問題に぀いお、そのスレッドにコメントを投皿したし

/ cc @minestarks

verisonを4.1.8に修正するこずは私のために働いた

この問題に察凊するPRはここにありたすか 奇劙なこずに、Webプロゞェクトでスタむル付きコンポヌネントを䜿甚するこずはできたせん。

同じ問題が発生したした。実際、玄@types/styled-componentです。

my-app git:(master) ✗ npm ls @types/react-native
[email protected] /Users/devniel/dev/electron/my-app
└─┬ @types/[email protected]
  └── @types/[email protected]

問題の曎新はありたすか

次の内容で.yarncleanファむルを䜜成したす。

@types/react-native

問題を修正したす🎉

半幎、ただこの問題の曎新はありたせんか

本圓に曎新はありたせんか

私の意芋では、最善の解決策は@ types / react-nativeをピア䟝存関係にするこずですが、私の知る限り、 types-publisherは珟時点ではこれらをサポヌトしおいたせん。 メンテナの1人が、私が実際に正しく、peerDepが解決策であるこずを確認できたすか 週末に、types-publisherにpeerDepサポヌトを远加するこずに時間を費やすこずができるかもしれたせん。

私の意芋では、最善の解決策は@ types / react-nativeをピア䟝存関係にするこずです。

うヌん、 @types/react-nativeがピア郚門の堎合、React Native以倖のプロゞェクトで@types/styled-componentsを䜿甚するには、䟝存関係ずしお宣蚀する必芁がありたす。 それは理想的ではありたせん。

理想的に@types/react-native 、ReactNative以倖のプロゞェクトでは

それをoptionalDependencyにする぀もりですか

@paulmelnikow 、はい、あなたは正しいです、私は2぀を混乱させたした。 @types/styled-componentsを䜿甚するために、䟝存関係ずしお@types/react-nativeを宣蚀する必芁はありたせんが、厄介な譊告が衚瀺されるため、もちろん、optionalDepsの方が優れた゜リュヌションです。 types-publisherもそれらをサポヌトしおいないので、調べおみたす

「@types / styled-components」にダりングレヌド「4.0.0」で問題が解決したした。

いいえ、解決したせん。 それはカヌペットの䞋で問題を䞀掃したす

いいえ、解決したせん。 それはカヌペットの䞋で問題を䞀掃したす

もう䞀床コンパむルするずしたしょう。 ;-)

次の内容で.yarncleanファむルを䜜成したす。

@types/react-native

問題を修正したす🎉

npmに盞圓するものはありたすか

この問題に関する進展はありたすか
それはstyled-componentsをtypescriptで䜿甚できなくしたす。

このリポゞトリの実際のコヌドを詳しく芋おみるず、 @types/react-nativeは、React Native統合の実際の.d.tsずテストファむルでのみ必芁であるこずがはっきりずわかりたす。 より適切な解決策は、React Nativeに関連するものを、 styled-components実際にどのように機胜するかの動䜜ず䞀臎しお、独自のサブモゞュヌル/オプション/ピアの䟝存関係に分割するこずです。 styled-components/nativeをむンポヌトしたす。 ReactNativeのものが必芁な堎合はstyled-componentsをむンポヌトせず、実行時にReact Nativeのもののゞャングル党䜓も取埗するので、 styled-componentsだけをむンポヌトするだけで、 @types/react-nativeゞャングル党䜓も取埗するべきではありたせん。

圓面の間、react-native統合は、このパッケヌゞのNPM公開バヌゞョンから削陀し、独自のパッケヌゞずしお公開する必芁があるず思いたす。 珟状では、これは恥ずかしいほど壊れおおり、TypeScript党䜓の芋栄えが悪くなりたす

この問題を修正しおください。 ネむティブタむプをできるだけ早く取り出しおください。 これにより、他の点では優れたタむピングプロゞェクトがほずんど䜿甚できなくなりたす。

このリポゞトリの実際のコヌドを詳しく芋おみるず、 @types/react-nativeは、React Native統合の実際の.d.tsずテストファむルでのみ必芁であるこずがはっきりずわかりたす。 より適切な解決策は、React Nativeに関連するものを、 styled-components実際にどのように機胜するかの動䜜ず䞀臎しお、独自のサブモゞュヌル/オプション/ピアの䟝存関係に分割するこずです。 styled-components/nativeをむンポヌトしたす。 ReactNativeのものが必芁な堎合はstyled-componentsをむンポヌトせず、実行時にReact Nativeのもののゞャングル党䜓も取埗するので、 styled-componentsだけをむンポヌトするだけで、 @types/react-nativeゞャングル党䜓も取埗するべきではありたせん。

👍

圓面の間、react-native統合は、このパッケヌゞのNPM公開バヌゞョンから削陀し、独自のパッケヌゞずしお公開する必芁があるず思いたす。

32843の掚力のように、この問題を匕き起こさずに䞡方を同じパッケヌゞで出荷する方法があるのではないかず思いたすが、それは解決策になるず思いたす。

これを修正する最善の方法は、゜リュヌションを䜿甚しおPRを掘り䞋げお開くか、修正できるスタむル付きコンポヌネントに特別に投資しおいる人を芋぀けるこずです。

DefinitelyTypedはパッケヌゞコミュニティに玠晎らしいサヌビスを提䟛し、ここにはメンテナがいたすが、圌らの仕事はすべおのタむプを維持するこずではありたせん。 このプロゞェクトたたはTypeScriptでこぶしを振っおも効果はありたせん。

私は感情に切り替えおい
それらは独自のタむプスクリプト定矩を含み、たったく同じむンタヌフェヌスを持っおいるので、移行は簡単に芋぀けおすべおを眮き換えるこずができたす。
さらに、バンドルサむズは少し小さくなりたす。

32843で導入された倉曎を元に戻すのはどうでしょうか。これは、90を超えるナヌザヌの入力が壊れ、叀いバヌゞョンたたはこのスレッドで蚀及されおいるいく぀かのハックを䜿甚するこずを䜙儀なくされたためです。

32843で導入された倉曎を元に戻すのはどうでしょうか。これは、90を超えるナヌザヌの入力が壊れ、叀いバヌゞョンたたはこのスレッドで蚀及されおいるいく぀かのハックを䜿甚するこずを䜙儀なくされたためです。

倧倚数のナヌザヌにずっおタむピングがうたく機胜するのであれば、それは合理的な解決策になる可胜性がありたす。 PRが承認されるかどうかはわかりたせんが、それが最善の解決策だず思われる堎合は、遠慮なくPRを䜜成しおください。

この埩垰が行われるずしたら、埌で反応ネむティブで動䜜させる方法に぀いお、パッケヌゞにいく぀かのメモを远加するこずになるず思いたす。 私は詊しおいたせんが、react-nativeナヌザヌがdeclare module宣蚀を䜿甚しお、削陀された型をコピヌしおプロゞェクトに貌り付け、匕き続き機胜させるこずができる可胜性がありたす。 明らかに、反応ネむティブナヌザヌにこれを行わせなければならないのは残念です。

ずはいえ、TypeScriptチヌムがこのような問題を凊理する方法に぀いお公匏のガむダンスを提䟛しおくれるずいいのですが、誰かがすべおの゜リュヌションで「負け」おしたうようです。

IMO、これは元に戻す必芁がありたす-䞻にWebスタむルのコンポヌネントの゚コシステムが倧きいためです。

それがどのように機胜するかに぀いおの詳现はもうわかりたせんが、React Nativeの堎合は、別のパスを䜿甚するこずで別のタむプのセットを取埗するこずがありたした。これは私にずっおは良い劥協点のように思えたした。 うヌん、これがもたらすもののように芋えたす。 それをそれに戻したす。

反応ネむティブの特定のタむプを远加するトリプルスラッシュむンポヌトを介しお人々がむンポヌトするアンビ゚ントモゞュヌルを䜜成する方法があるのではないかず思いたす。

ここで+1したすが、䞍平を蚀うだけでなく、行動蚈画がある堎合は参加しおこの問題の解決を支揎したいず思いたす。

私はここに来お、コメントのいく぀かに私のプラスワンを远加しに行きたした。 私はすでにそうしおいるこずに気づきたした...最埌にこの問題に遭遇したずき。

そしおそれが私が他の図曞通のメンテナに圌らのタむプを保持するように頌んだ理由です。 これにより、ラむブラリはタむプに合わせおむンラむンで曎新されたす。 def typedが倚くの点でコミュニティに圹立っおいるのが倧奜きですが、libメンテナが自分で入力できるたたはtsで曞き盎すこずができれば、より安党な䞖界になりたす。

ロヌカルクロヌンを介しおこの問題を回避するこずができたので、私もこの問題に぀いお冷静で萜ち着いおいたしたが、䞖界䞭の人々がこの問題に十分苊しんでいたず思いたす6か月以䞊。 私はこの重倧で壊滅的な問題を修正し、技術に粟通しおいないタむプスクリプトナヌザヌが戻っおくるこずを蚱可したいず思っおいたす。

承認埅ちのPRはありたすか 無効なreact-nativeグロヌバル䟝存関係を削陀する1行のコヌド倉曎を行う必芁がありたすかプラむベヌトnpmリポゞトリ内で行ったように

たた、 react-nativeをむンストヌルしお、グロヌバル名前空間ず競合する必芁がある理由はありたすか チャむムを鳎らしお、あなたの考えを共有しおください。 しかし、意図せずに私たちの仕事を壊した人々は、私たちの被害に぀いおの手がかりがないはずであるのず同じくらい幞せなので、この問題を読んだこずがあるのではないかず思いたす。前。

さらに、他のパッケヌゞはこの皮の問題にどのように察凊したすか 私にはそれに぀いおの手がかりがないので、この問題を元に戻す_ "単玔な" _PRを䜜成するこずを少し躊躇したす。

この倉曎を元に戻す必芁があるず思いたすが、これを機胜させるためにskipLibCheckを有効にする必芁はありたせんhttps //github.com/DefinitelyTyped/DefinitelyTyped/issues/33311#issuecomment-466731156。 しないでください。

この倉曎を元に戻すこずは良い遞択肢ではないず思いたす。 倚くの人がreact-nativeのタむピングを必芁ずしおいるので、゚ラヌの原因ずなるものを修正し、すべおのreact-nativeタむピングを削陀する必芁はありたせん。

そしお、珟時点で解決策がない堎合はどうなりたすか 珟時点では完党に壊れおおり、しばらく経っおいるので、非ネむティブナヌザヌには少なくずも1぀のリリヌスを提䟛する必芁がありたす。私は、非ネむティブナヌザヌも倧倚数であるず思い切っお掚枬したす。

これに関する曎新はありたすか

react-native入力が必芁な@dawickの人は、手動でむンストヌルできたす。
なぜ圌らはたったく必芁なのですか

この倉曎を元に戻すこずは良い遞択肢ではないず思いたす。 倚くの人がreact-nativeのタむピングを必芁ずしおいるので、゚ラヌの原因ずなるものを修正し、すべおのreact-nativeタむピングを削陀する必芁はありたせん。

以䞋のためのタむピング必芁ずする人々 react-nativeむンストヌルするこずによっお、それらを取埗する必芁がありたす@types/react-native 。

私は、 react-native関連するすべおのものを@types/styled-componentsから削陀し、別のパッケヌゞ/パス @types/styled-components/nativeなどに移動しお、実際の人々のやり方ず䞀臎させる必芁があるずいう立堎を匷く持っおいたす。 styled-componentsたす; react-nativeサポヌトが必芁な人は、 import styled from 'styled-components/native'を䜿甚しお明瀺的に取埗したすが、Webでimport styled from 'styled-components'を実行しおも、すべおのreact-nativeゞャングル党䜓を取埗するこずはできたせん。プロゞェクトなので、関連する@types/パッケヌゞの動䜜に違いはありたせん。

私は週末にこれをより䜓系的な方法で修正するこずに挑戊したした。これは、WebずReactNativeの䞡方のタむプをラップするすべおのリポゞトリで機胜する可胜性がありたす。 https://github.com/microsoft/types-publisher/pull/655

これはどのように察凊されおいたせんか...

真剣に ただ修正はありたせんか

@givethemheller @ sanex3339https//github.com/microsoft/types-publisher/pull/655で䜜業ずディスカッションに修正がありたす

䞀時的な解決策ずしお、node_modulesから@types/react-nativeを削陀するだけです。
rm -rf node_modules/@types/react-native
それを.yarnclean远加したす
@types/react-native

TypeScript 3.7のリリヌスにより、以前は動䜜しおいたv4.1.8がTS 3.7ず互換性がなくなったため、3.7ナヌザヌがタむプ定矩をアップグレヌドするように_匷制_される状況になりたしたが、TS3.7ず互換性のある唯䞀のバヌゞョンは完党に壊れおいたす。すべおのReact-web開発者これは確かに圧倒的倚数であるに違いありたせん。 😕

.yarnclean回避策は、Yarnを䜿甚する人にずっおはおそらく十分であり、これには誰よりも少ないものが含たれたす。 たた、 compilerOptions倉曎するこずは、スケヌラブルで長期的な゜リュヌションではありたせん。

ここでの最善の解決策が䜕であるかわかりたせん。 䞀時的なものずしお、私は間違いなく、 react-nativeものを明確に陀倖した別のバヌゞョンを公開するこずに賛成です。

ダヌン以倖のナヌザヌは、これをnpmスクリプトに远加するこずで回避できたす。

    "postinstall": "rm -rf node_modules/@types/react-native"

NPMは、ネむティブタむプをむンストヌルした盎埌にそれらを削陀したす。 それでも問題になるべきではないものに察するハッキヌな回避策ですが、それは機胜したす。

ここにも自分を远加したす。 倚くのむンストヌル埌のスクリプトを線集するよりも優れた゜リュヌションが必芁です...

この問題は、基本的に1幎以䞊スタむルコンポヌネントのすべおのtypescriptナヌザヌに圱響を䞎えおいたす!!!。
これに察する公匏の解決策はありたすか.yarncleanによるハッキングは数えたせん ブロッカヌはありたすか

私はこれを2぀のパッケヌゞに分割したいず思いたすたたは朜圚的に3぀、react-nativeずreactの䞡方に共通のものを持぀ベヌスパッケヌゞ、react甚ずRN甚に1぀、埌者の2぀に共通のものを持぀最初のパッケヌゞを䜿甚させるそれに察凊するための最も簡単で最速の方法である。

貢献者が䞍足しおいるだけの堎合は、ハックするこずなく、スタむル付きコンポヌネントずタむプスクリプトの䞡方を簡単に䜿甚できるようにしたいず思っおいたす😄

呚りのものをハックするこずなく、styled-componentsずtypescriptの䞡方を䞀緒に䜿甚するのが簡単になりたいだけです😄

バンプ より良い型定矩の実装が必芁です...

node_modulesから@types/react-nativeを削陀したしたが、それでも同じ゚ラヌが発生したす。 なぜハックしおも

@ArnaudJeannin手動で手動で削陀した堎合、 npm i / yarnを実行するたびに远加されたす。

以前のコメントに埓っおNPM postinstallを介しお削陀するか、Yarnを䜿甚しおいる堎合は.yarnclean远加するこずで、むンストヌルを通じお削陀を氞続化できたす。

私がしたこずはすべおの人に適しおいるわけではありたせんが、スタむル付きコンポヌネントから感情に切り替えるこずでこの問題を「解決」したした。 どちらのラむブラリの䜿甚法も非垞に基本的であり、コンポヌネントをCSSでラップし、スタむルを継承するだけですが、Emotionには、必芁な機胜のスタむル付きコンポヌネントず同様のAPIがあるこずがわかりたした。 簡単な移行でした。 6か月経っおも、これたでのずころ重倧な問題は発生しおいたせん。 Emotionには組み蟌みのTSタむピングが含たれおいるため、 @types非同期の問題は発生したせん。

䞊蚘のように、CSSラむブラリの切り替えは倚くのプロゞェクトに適しおいたせんが、私にずっおは、スタむル付きコンポヌネントのTSの問題に取り組むよりも切り替えが簡単でした。 YMMV。

yarnナヌザヌ向けのより簡単な回避策。これにより、珟圚のバヌゞョンのスタむル付きコンポヌネントを䜿甚できるようになりたす。 package.json内

  "resolutions": {
    "@types/react-native": "link:./empty-package"
  },

䞊蚘の解決策の察象ずなる䜕もしないパッケヌゞを蚭定したす。

mkdir empty-package
cd empty-pacakge
yarn init -y
touch index.d.ts

私のために働きたす。

@arimah @GabrielDuarteM 、あなたの反察祚を説明できたすか これを詊しおみたしたが、うたくいきたせんでしたか 私が助けるこずができるようにコメントしおください、そうすれば他の人が利益を埗るかもしれたせん。 これは、珟時点で利甚可胜な他の唯䞀の回避策タむプモゞュヌルを削陀するためのむンストヌル埌のスクリプトよりもはるかに䟵襲性が䜎いようです。 たたは、この回避策に私が気付いおいない匷い吊定的な点がある堎合は、コメントを修正たたは削陀したいず思いたす。

@jamietreこれはうたくいくかもしれたせんが、これは正しい解決策ではなく、react-nativeのために型を分割する必芁があるずいう事実たたはおそらくピアの䟝存関係を倉曎しないずいう反察意芋があるず思いたす

@jamietreこれはうたくいくかもしれたせんが、これは正しい解決策ではなく、react-nativeのために型を分割する必芁があるずいう事実たたはおそらくピアの䟝存関係を倉曎しないずいう反察意芋があるず思いたす

回避策が眉をひそめおいるこずに気づいおいたせんでした。 実際の修正を埅っおいる間、私は垞にそれらが非垞に圹立぀ず思いたす。 これは1幎以䞊の間問題になっおいたす。 そしお、仕事はただ終わらせる必芁がありたす。 🀷‍♂

@jamietreそれはあなたがそれを「解決策」ずしおたせん。そのように

@jamietreそれはあなたがそれを「解決策」ずしおたせん。そのように

「解決策」を「回避策」に倉曎したした...本圓に私は人々がtypescriptでstyledcomponentsを䜿甚できるように手助けしようずしおいたす。 反察祚はそれが機胜しないこずを意味したす。 セマンティクスに぀いお口論するのに圹立぀ようには芋えたせんが、確かです。

Appsome Solutionsでも同じ問題が発生し、tsconfig.jsonファむルの"skipLibCheck": true,ルヌルで回避したした。

@pumanitro他の倚くの提案ず同様に、残念ながらそれは解決策ではなく、単なる回避策です。

@SamHH解決された単語を回避策に倉曎したした。
これはtypescriptを䜿甚したCRAで行われる方法ですが、それは解決策ではありたせん。 それでも、それは人々を助けるこずができたす。

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/32843#issuecomment-605921101からコメントを再投皿する

この問題を回避するには、持っおいるこずですcompilerOptions.typesあなたの䞭に配列をtsconfig.json自動的に䞀぀䞀぀読んでからtypescriptですが停止する@types/*型チェック時にパッケヌゞ。 Typescriptは、 types配列で指定されたパッケヌゞのタむプのみを自動的にむンポヌトしたす。 たずえば、 "types": ["node"]  bufferやpathなどの組み蟌みモゞュヌルを䜿甚しお@types/nodeをロヌドする堎合、 "types": ["node", "jest"] 冗談テストも曞きたす; たたは、盎接むンポヌトされおいないパッケヌゞやコヌドからの/// <reference types="..." /> typescriptによっお自動ロヌドされないようにするには、 "types": []だけでもかたいたせん。

@types/styled-components-nativeを持っおいる方が良いかどうかは本圓に蚀えたせん。 少なくずもそれは珍しいこずであり、おそらくcompilerOptions.types 「回避策」の必芁性を排陀したすが、IMOはcompilerOptions.typesを、タむプを自動ロヌドする必芁があるパッケヌゞのみに蚭定したす importなし


芁玄するず、問題は、TypeScriptが@types/react-nativeタむプを自動的にロヌドしおいるこずです。これは、デフォルトの動䜜ではすべおの@types/*パッケヌゞがロヌドされるため、盎接たたは間接的に参照しおいたせん。 compilerOptions.typesを蚭定するず、そのデフォルトが回避され、リストしたパッケヌゞずimportのパッケヌゞのみがロヌドされたす。

これがただ問題だずは信じられたせん 去幎の倏にこの問題に遭遇したした。それ以来修正されおいるず思っおいたので、パッケヌゞを曎新したした😠

@ types / styled-componentsのメンテナは誰ですか 新しい人が必芁だから

compilerOptions.typesを䜿った@Jessidhiaの提案は私のために働いた。 どうもありがずうございたす これもベストプラクティスだず思いたす。 今たで私は䞍利な点を経隓したせんでした。 それも速いず想像できたした。

@sbuschの欠点は、 compilerOptions.typesを䜿甚する堎合、このリストに含たれおいないものはすべお陀倖されるため、すべおの入力をここにリストする必芁があるこずです。 したがっお、タむピングを提䟛するむンストヌル枈みのパッケヌゞの堎合、この構成を手動で管理する必芁がありたす

ええ、すべおのタむプをタむプにリストするこずはオプションではありたせん。

モゞュヌルから䜕かをむンポヌトしおも、TypeScriptタむプを取埗できたす。 typesオプションは、グロヌバル宣蚀のタむプを自動むンポヌトするためのものです。 これはあたり必芁ないので、これらのモゞュヌルを手動でtypes远加するのはそれほど悪くないはずです。 それが私がそれを理解する方法です。 types配列を[]に蚭定した埌でも、非垞に厳密なTS蚭定を備えた非垞に倧きなTSコヌドベヌスは機胜したした。

たずえば、 https//stackoverflow.com/a/59030291を参照しお

欠点は、 compilerOptions.typesを䜿甚する堎合、このリストに含たれおいないものはすべお陀倖されるため、すべおの入力をここにリストする必芁があるこずです。 したがっお、タむピングを提䟛するむンストヌル枈みのパッケヌゞの堎合、この構成を手動で管理する必芁がありたす

@sbushが蚀ったように、これは真実ではありたせん。 このオプションはグロヌバルタむプ専甚であり、 import edlibsのタむピングは問題なく䜿甚されたす。 @Jessidhiaの提案は無害です。

私は、単䞀のパッケヌゞが消費者にその分野を攟っおおくずいう慣習を砎るこずを匷いるべきではないず思いたす。 他のすべおず同様に、これは解決策ではなく回避策です。

モノレポゞトリLerna + yarn workspaces 回答が倚すぎるがあるずきに、誰かがすでにケヌスに回答したかどうかはわかりたせん。 この堎合、 yarnのWebサむトでno-hoistプロパティの詳现を利甚できたす。

package.jsonファむルの実際

"workspaces": {
  "packages": ["packages/*"],
  "nohoist": ["**/react-native", "**/react-native/**"]
}

🙏🏻 @types/styled-components": "4.1.8" 🙏🏻

@nahumzsが提案する゜リュヌションは、糞のモノリポゞトリを䜿甚しおいる堎合に機胜したす。 この堎合、react-nativeがグロヌバルnode_packagesフォルダヌを汚染しないようにし、重耇が゚ラヌをスロヌするのを防ぎたす。

どの時点で、ReactNativeナヌザヌよりもReactWebナヌザヌの方が倚いず蚀っお、React Nativeサポヌトを削陀したすか

この問題に぀いお䜕か進展はありたしたか 珟圚、@ types / styled-componentsのバヌゞョン4.1.8を䜿甚しおいたす。これは、解決策がないず曎新できないため、たたはnpm postinstallコマンドでnode_modules / @ types / react-nativeを削陀するなどの回避策を利甚できないためです。

ああ、この問題は私に本圓に倚くの痛みを匕き起こしたす。

今、私はここで説明されおたす。 したがっお、新しいTypescriptにアップグレヌドするず、 @types/[email protected]も䜿甚できなくなりたす。 😡😡😡WTH。

ずにかく、これはhttps://github.com/DefinitelyTyped/DefinitelyTyped/issues/33015の耇補のよう

Appsome Solutionsでも同じ問題が発生し、tsconfig.jsonファむルの"skipLibCheck": true,ルヌルで回避したした。

誰かが同じように感じた堎合この問題を回避するためだけにskipLibCheckを有効にしたくありたせんでした。 しかし、最近の倉曎により、新しいTypeScriptプロゞェクトでskipLibCheck有効になったので、気が

誰かが非垞に汚いハックで倧䞈倫かもしれたせん、あなたはあなたのpackage.jsonスクリプトのセクションに远加するこずができたす

"postinstall": "rm -rf node_modules/@types/react-native"

優れた゜リュヌションではありたせんが、これは機胜するはずです。

OMG、この問題は5.1.1でも実際に発生したす

1-プロゞェクトルヌトに.yarncleanを远加したす。
2-次のコンテンツを挿入したす @types/react-native 。

これは、少なくずも私が公匏の解決策を埅぀間、ここで解決したした。

これは1。5幎以䞊続いおいたす。 ずにかく、私の問題は関連しおいるず思いたす、そしお私はより倚くの「重耇した識別子」゚ラヌを受け取りたす。 合蚈36。

tsconfig.json

{
  "compilerOptions": {
    "allowJs": true,
    "baseUrl": ".",
    "esModuleInterop": true,
    "isolatedModules": true,
    "jsx": "react",
    "module": "CommonJS",
    "moduleResolution": "Node",
    "noEmit": true,
    "sourceMap": true,
    "target": "ES6"
  },
  "include": [
    "src/**/*"
  ],
}

tscコンパむルした結果

合蚈38゚ラヌ。 それらのうちの2぀だけが私の実際のプロゞェクト゜ヌスsrc/**.*ファむルからのものです。 他の36の゚ラヌは、 .d.tsによっお匕き起こされた@types/styled-components .d.ts競合によるものです。

泚 "skipLibCheck": trueフラグを远加するず、゚ラヌはなくなりたす。 たた、 @types/styled-componentsを削陀するず、゚ラヌもなくなりたす。

ここに完党なログを投皿するこずはしたせんが、ここにいく぀かの䟋がありたす。

error TS2300: Duplicate identifier 'AbortController'.
../../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:1939:11
../../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:1950:13 
node_modules/@types/react-native/globals.d.ts:363:15

error TS2300: Duplicate identifier 'AbortSignal'. 
../../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:1960:11 
node_modules/@types/react-native/globals.d.ts:350:15
../../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:1972:13

error TS2300: Duplicate identifier 'FormData'. 
../../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:5548:11
node_modules/@types/react-native/globals.d.ts:40:15
../../../AppData/Roaming/npm/node_modules/typescript/lib/lib.dom.d.ts:5558:13

error TS2300: Duplicate identifier 'URL'.
error TS2300: Duplicate identifier 'URLSearchParams'.
error TS2300: Duplicate identifier 'RequestInfo'.
error TS2300: Duplicate identifier 'XMLHttpRequestResponseType'.

error TS2717: Subsequent property declarations must have the same type.  Property 'body' 
must be of type 'string | ArrayBuffer | ArrayBufferView | Blob | FormData | URLSearchParams | ReadableStream<Uint8Array> | null | undefined', 
but here has type 'string | ArrayBuffer | DataView | Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | ... 8 more ... | undefined'. 

error TS2717: Subsequent property declarations must have the same type.  Property 'signal' must be of type 'AbortSignal | null | undefined', but here has type 'AbortSignal | undefined'.

error TS2300: Duplicate identifier 'RequestInfo'.

この時点で採甚しおいる解決策は、 @types/styled-componentsを削陀しお、プロゞェクトReact Webアプリを続行するこずです。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡