The published types reference src/types/globals.d.ts, whose globals conflict with TypeScript's DOM library under skipLibCheck: false
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 70/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- react-native, typescript
- Lĩnh vực
- developer-experience, mobile-dev
Hướng nghiên cứu
Start with the types_generated/index.d.ts reference to src/types/globals.d.ts and the mandatory reproducer linked in the issue. Run yarn check:dom there to confirm the declaration conflicts with the DOM library. The issue is resolved when importing View with the stated TypeScript settings produces no errors from React Native's declarations.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
types_generated/index.d.ts, the declaration file the package's exports name for react-native, starts with /// <reference path="../src/types/globals.d.ts" />. That file (globals.d.ts) declares its own fetch, Headers, Request, Response, FormData, XMLHttpRequest, URL, URLSearchParams, WebSocket, Blob, File, FileReader, AbortController, AbortSignal and timers as globals, and they differ from the declarations TypeScript's lib.dom.d.ts makes of the same names. So a project that type-checks its dependencies' declarations (skipLibCheck: false) and includes the DOM library, as a project sharing code with the web does, gets 69 errors in globals.d.ts from a plain import {View} from 'react-native'.
The generated declarations themselves import the Blob, FormData and ErrorUtils types they use by path, so the reference only adds these globals.
Steps to reproduce
- Clone https://github.com/YevheniiKotyrlo/react-native-typescript-declarations and run
yarn installinReproducerApp. It runs[email protected]with TypeScript 7.0.2 and@types/react19.3.0. - Run
yarn check:dom. It type-checksdeclarations/import-react-native.ts, which isimport {View} from 'react-native', withstrict: true,skipLibCheck: falseandlib: ["ES2024", "DOM", "DOM.Iterable"].
Expected: no errors from react-native's declarations.
Seen: 72 errors, 69 of them from the globals in src/types/globals.d.ts (TS2300, TS2403, TS2687, TS2717) and three from types_generated itself, which I reported in #59647. 0.88.1 prints the same 72.
React Native Version
0.88.1, and 0.89.0-nightly-20261029-25b05acd7
Affected Platforms
Other (please specify)
Output of npx @react-native-community/cli info
System:
OS: Windows 11 10.0.26300
Binaries:
Node:
version: 26.12.1
Yarn:
version: 1.22.22
npmPackages:
"@react-native-community/cli":
installed: 20.2.0
wanted: 20.2.0
react:
installed: 19.3.0
wanted: 19.3.0
react-native:
installed: 0.89.0-nightly-20261029-25b05acd7
wanted: 0.89.0-nightly-20261029-25b05acd7
The defect is in the published TypeScript declarations, so it shows on every platform; the reproducer only runs tsc.
Stacktrace or Logs
The first errors of yarn check:dom, cut at 200 characters:
node_modules/react-native/src/types/globals.d.ts(218,8): error TS2300: Duplicate identifier 'EndingType'.
node_modules/react-native/src/types/globals.d.ts(219,8): error TS2300: Duplicate identifier 'BlobPart'.
node_modules/react-native/src/types/globals.d.ts(220,8): error TS2300: Duplicate identifier 'BufferSource'.
node_modules/react-native/src/types/globals.d.ts(238,7): error TS2403: Subsequent variable declarations must have the same type. Variable 'Blob' must be of type '{ new (blobParts?: BlobPart[] | undef
node_modules/react-native/src/types/globals.d.ts(252,7): error TS2403: Subsequent variable declarations must have the same type. Variable 'File' must be of type '{ new (fileBits: BlobPart[], fileName
node_modules/react-native/src/types/globals.d.ts(273,9): error TS2300: Duplicate identifier 'FormData'.
node_modules/react-native/src/types/globals.d.ts(338,5): error TS2717: Subsequent property declarations must have the same type. Property 'body' must be of type 'BodyInit | null | undefined', but her
node_modules/react-native/src/types/globals.d.ts(347,5): error TS2717: Subsequent property declarations must have the same type. Property 'signal' must be of type 'AbortSignal | null | undefined', bu
node_modules/react-native/src/types/globals.d.ts(357,14): error TS2717: Subsequent property declarations must have the same type. Property 'signal' must be of type 'AbortSignal', but here has type 'A
node_modules/react-native/src/types/globals.d.ts(361,7): error TS2403: Subsequent variable declarations must have the same type. Variable 'Request' must be of type '{ new (input: URL | RequestInfo, i
node_modules/react-native/src/types/globals.d.ts(366,8): error TS2300: Duplicate identifier 'RequestInfo'.
node_modules/react-native/src/types/globals.d.ts(385,7): error TS2403: Subsequent variable declarations must have the same type. Variable 'Response' must be of type '{ new (body?: BodyInit | null | u
node_modules/react-native/src/types/globals.d.ts(465,5): error TS2717: Subsequent property declarations must have the same type. Property 'abort' must be of type 'ProgressEvent<XMLHttpRequestEventTar
node_modules/react-native/src/types/globals.d.ts(466,5): error TS2717: Subsequent property declarations must have the same type. Property 'error' must be of type 'ProgressEvent<XMLHttpRequestEventTar
MANDATORY Reproducer
https://github.com/YevheniiKotyrlo/react-native-typescript-declarations
Screenshots and Videos
None: the failure is the type checker's output above.
- Ngôn ngữ chính
- C++
- Star
- 127k
- Fork
- 25.4k
- Merge trung bình
- 3 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 108
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của react/react-native
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
react/react-native#59722 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Android: new WebSocket() crashes the app for a URL that OkHttp or java.net.URI rejectsCó thể đã có người làm @sorinc03 đã nhận 1 ngày trước. Đang mở🌐Networking Needs: Author Feedback Needs: Repro Platform: Android
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
react/react-native#59704 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
react/react-native#59694 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Image.resolveAssetSource's TypeScript declaration drops the null it returns for an unknown assetCó thể đã có người làm @Hassan1305 đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
react/react-native#59648 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Linking.getInitialURL() returns the task's first link after a link relaunches a reclaimed Android appCó thể đã có người làm @YevheniiKotyrlo đã nhận 21 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
react/react-native#59006 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của react/react-native
Issue tương tự
-
`BLMPOP` with COUNT 0 or numkeys 0 hangsCó thể đã có người làm @ggyuchive đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
needs triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
gObjectFullbrightAlphaMaskProgram in newview/llviewershadermgr.cpp is defined but never initializedĐang mởbug triage
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
secondlife/viewer#6620 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug core p3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
RunanywhereAI/runanywhere-sdks#1258 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ripwire-router skill: stale language list (15 vs 26 supported; Elixir/PHP/Kotlin wrongly listed as unsupported)Có thể đã có người làm @joyful-ii-V-I đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
redhat-et/ripwire#521 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày