åé¡ãä¿®æ£ããæ¹æ³ãç¥ã£ãŠããå Žåã¯ã代ããã«ãã«ãªã¯ãšã¹ããè¡ã£ãŠãã ããã
[x] @types/styled-components
ããã±ãŒãžã䜿çšããããšããŸããããv.4.1.9以éãå¥ã®ç«¶åããäŸåé¢ä¿ãè¿œå ããïŒ@ types / react-nativeïŒã@ types / nodeãšç«¶åããããåé¡ãçºçããŸããã ã³ããããåç
§ããŠãã ãã
[x] tscã®ææ°ã®å®å®ããŒãžã§ã³ïŒ3.3.3333ïŒã䜿çšããŠã¿ãŸããã https://www.npmjs.com/package/typescript
[x] [ã¡ã³ã·ã§ã³]ïŒhttps://github.com/blog/821-mention-somebody-they-re-notifiedïŒèè
ïŒ index.d.ts
Definitions by:
ãindex.d.ts
ïŒå¿çã
ã³ãã³ãã«ãããã¬ãã·ã¥ã€ã³ã¹ããŒã«reactã¢ããªyarn create react-app my-app-ts --scripts-version=react-scripts-ts
yarn add styled-components
yarn add -D @types/styled-components
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
lib.domãšç«¶åããå€ãã®å®çŸ©ã«ãããšãå€ãã®å€±æããããŸã
ãã£ã¡ãäžç·
@ 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ã¢ããªïŒãç¶è¡ããããšã§ãã
æãåèã«ãªãã³ã¡ã³ã
æåã§compilerOptions.typesãèšå®ããããšã§ä¿®æ£