typescript
npx create-react-app my-app --template typescript
npm install --save typescript @types/node @types/react @types/react-dom @types/jest
styled-component 가 6 버전이면 확장자면 tsx로 바꿔주면 된다
import React from "react";
import styled from "styled-components";
const Container = styled.div``;
interface CircleProp {
bgColor: string;
}
const Circle = ({bgColor}: CircleProp) => {
return <Container bgColor={bgColor} />;
};
export default Circle;
state
const [value, setValue] = useState<number | string>(1);
setValue(2);
setValue("hello");
setValue(true); //에러
state의 초기값으로 typescript는 state의 type을 추론한다
<number | string>
이런 식으로 작성하면 value state는 넘버와 스트링 둘 다 받을 수 있게 되고 boolean 타입인 true값은 빨간 줄로 에러표시를 한다
form
import React, { useState } from "react";
import styled, { ThemeProvider, keyframes } from "styled-components";
function App() {
const [value, setValue] = useState("");
const onChange = (event: React.FormEvent<HTMLInputElement>) => {
const {
currentTarget: { value },
} = event;
setValue(value);
};
const onSubmit = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
console.log("hello", value);
};
return (
<>
<form onSubmit={onSubmit}>
<input
value={value}
onChange={onChange}
type="text"
placeholder="usename"
/>
<button>Log in</button>
</form>
</>
);
}
export default App;
자바스크립트와 리액트 문법에 form의 이벤트 문법에 typescript는 에러를 사전에 방지하기 위해 도움을 준다
style.d.ts 파일생성
// import original module declarations
import 'styled-components';
// and extend them!
declare module 'styled-components' {
export interface DefaultTheme {
borderRadius: string;
colors: {
main: string;
secondary: string;
};
}
}
styled-components 템플릿 복붙
'프로그래밍 > ReactJS' 카테고리의 다른 글
react tailwind 설치 및 세팅 (0) | 2023.10.13 |
---|---|
react-router-dom 6버전 설치, 사용 (0) | 2023.10.10 |
styled-components 설치 및 사용 (0) | 2023.09.26 |
리액트 라우터 돔 react-router-dom 설치 및 세팅 (0) | 2023.09.24 |
HTML을 JSX문법으로 바꿔주는 사이트 (0) | 2023.09.20 |