์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก์ ํธ๋ฅผ ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ณํ
์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ํ๋ ๋๋ฌผ์ ์ฒ ํ๋ก์ ํธ๋ฅผ ํ์ ์คํฌ๋ฆฝํธ๋ก ์์ ํ๋ ค๊ณ ํ๋ค.
์๋๋ฉด ์ด์ ๋ญ๊ฐ ํ์ผ์ด js์ธ๊ฒ ์ต์์ง๊ฐ ์์.... ํ์ ์คํฌ๋ฆฝํธ๋ ์ ๋ชปํ๊ธฐ๋ ํ๊ณ ํด์
์ด ํ๋ก์ ํธ๋ ์จ์ ํ ๊ณต๋ถ์ฉ์ธ๋ฐ ์ต์ํ(?) ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ๋ ค๊ณ ํ๋ ๊ฑด! ๊ณต๋ถ๊ฐ ์๋! ํด์ ํ์ ์คํฌ๋ฆฝํธ๋ก...
๊ทธ๋ฌ๋ฉด ์ผ๋จ ์ด๋ฏธ ๋ง๋ค์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํ์ ์คํฌ๋ฆฝํธ๋ก ๋ฐ๊พธ์ด์ผ ํ๋ค..
์ฐธ๊ณ : https://steadily-worked.tistory.com/554
Typescript ํ๊ฒฝ ๊ตฌ์ฑ
- npm init -y (npm ์ด๊ธฐํ ๋ช ๋ น์ด)๋ก package.json ํ์ผ ์์ฑํ๊ธฐ
- ํ๋ก์ ํธ ํด๋์์ npm i typescript -D ๋ก ํ์ ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์นํ๊ธฐ
- ํ์ ์คํฌ๋ฆฝํธ ์ค์ ํ์ผ tsconfig.json ์ ์์ฑํ๊ณ ๊ธฐ๋ณธ๊ฐ ์ถ๊ฐํ๊ธฐ
{
"compilerOptions": {
"allowJs": true,
"target": "ES5",
"outDir": "./dist",
"moduleResolution": "Node",
"lib": ["ES2015", "DOM", "DOM.Iterable"]
},
"include": ["./src/**/*"],
"exclude": ["node_modules", "dist"]
}
์ด ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ํ๋ฒ ๋ฌ๋ค. ๋ณ๊ฑด ์๋์์ง๋ง
No inputs were found in config file '๊ฒฝ๋ก/tsconfig.json'. Specified 'include' paths were '["./src/**/*"]' and 'exclude' paths were '["node_modules","dist"]'.
ํ๋ก์ ํธ ๋ด์ ์์ฑํ์ด์ผ ํ๋๋ฐ, ๊ทธ ๋ฐ๊นฅ ํด๋์ ์์ฑ์ํด์, tsํ์ผ์ด ํ๋๋ ์์ด์ ์๊ธด ์ค๋ฅ์๋ค.
js ํ์ฅ์๋ฅผ ์ ๋ถ ts๋ก
์ด์ ์ค๋ฅ๋ฅผ ํด๊ฒฐํด์ฃผ๋ฉด ๋๋ค..
์ฌ๊ธฐ์ ์๊ธด ์ค๋ฅ 1
Cannot use JSX unless the '--jsx' flag is provided.
vscode ๋ด ๋ฒ์ ์ด ๋ด ๋ฒ์ ๊ณผ ๋ฌ๋ผ์ ์๊ธฐ๋ ์ค๋ฅ์ด๋ค.
tsconfig.json ๋ด compilerOptions ์ "jsx": "preserve" ๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด๋๋ค
villager.tsx
interface Villagers {
name: string;
gender: string;
image_url: string;
species: string;
}
function villagers({ name, gender, image_url, species }: Villagers) {
return (
...
interface๋ฅผ ์ด์ฉํด์ ํ์ ์ ์ง์ ํด์ฃผ๊ณ ๋ฌ๋๋ ๋ชจ๋ ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋ค!
์ฌ๊ธฐ์ ์๊ธด ์ค๋ฅ 2
๋ฌธ์ ๋ ์ด ์น๊ตฌ์๋๋ฐ, ๋ํต ์์ธ์ด ๋ญ์ง ๋ชจ๋ฅด๊ฒ ์๋ ๊ฒ์ด๋ค ใ .ใ
'App' refers to a value, but is being used as a type here. Did you mean 'typeof App'?
App.test.tsํ์ผ์ tsx ํ์ผ๋ก ๋ง๋ค์ด์คฌ์ด์ผ ํ๋๋ฐ ts ๋ก ๋ง๋ค์ด์ค์ ์๊ธฐ๋ ์ค๋ฅ์ด๋ค. tsx๋ก ๋ฐ๊ฟ์คฌ๋๋ ์ ํด๊ฒฐ๋์๋ค!