const plus = (a:number, b:number)=> a+b;
//a와 b의 타입을 숫자로 지정
plus("a",1)
//"a"에 빨간 밑줄이 팍팍 그어지며 틀린 부분을 지적해준다.
npm i --save typescript @types/node @types/react @types/react-dom @types/jest
npm i --save-dev @types/styled-components
let 변수이름 : 타입
const 변수이름 : 타입
let n: number = 1
let b: boolean = true
//interface도 적용할 수 있다.
const theme: DefaultTheme = {...};
bgColor
props 지정return
<div>
<Circle bgColor="red" />
interface CircleProps {
bgColor:string
//문자열 타입으로 지정
}
const Container = styled.div<CircleProps>`
const Container = styled.div<CircleProps>`
//스타일드 컴포넌트에 interface 적용
width: 100px;
height: 100px;
border-radius: 50%;
background-color: ${(props) => props.bgColor};
`;
function Circle({bgColor}:circleProps) {
//props에 interface 적용
return <Container bgColor={bgcolor} />
}
💥그러나
bgColor:string
라고 쓰면isRequired
상태가 됨
=> Circle 컴포넌트들이 모두bgColor
Props를 갖고 있어야하는 상황
interface CircleProps {
bgColor?: string;
}
//props 뒤에 ?를 붙여주면 됨
bgColor?:string
와 color:string | undefined
의 결과값은 같다.<Container borderColor = {borderColor ?? "red"} />
const [value, setValue] = useSatate<number|string>(1);
//number, string 타입을 지정
React JS 마스터 클래스 - 노마드코더
Do it! 타입스크립트 프로그래밍 - 전예홍, 이지스퍼블리싱
더 추가될 수도 있음