영상: https://www.youtube.com/watch?v=IeXZo-JXJjc
c# 만큼이나 명확해서 좋다고 하던데 쓰는동안 제대로 못쓰고 있었군요
이 강좌를 보고 여러가지를 제한해 봤더니 꽤 안심이 되었습니다.
js 는 정말 아무거나 넣을 수 있어서 빠르게 코깅이 가능하긴한데
프로젝트가 커지다보면 이상한 값이 들어가면 왜 들어갔는지 찾기가 너무 힘들었는데 이부분은 좋았습니다.
keyof
let 변수 = keyof 인터페이스명
인터페이스의 키값이 아닌건 사용할 수 없게됩니다.
키명으로 접근할때 엉뚱한 키로 접근하는걸 막을 수 있겠군요
Partial<>
let 변수 : Partial<인터베이스명> = { ~~ }
인터베이스의 모든값을 체울 필요가 없어집니다.
빠르게 변수 만들고 싶은데 필수요소가 없다고 에러나는걸 피할 수 있습니다.
(이러면 제한하는게 아니구나)
Required<>
이번엔 Partial 과 반대로 모든 변수명을 채워야 변수를 생성할 수 있습니다.
변수 추가되면 난리나도록 제한 하는 용도입니다.
(이걸 원했습니다.)
Readonly<>
변수 만들고난뒤 맴버변수를 고칠 수 없게됩니다.
let a : Readonly<User> = { name:"a"};
a.name = "b"; <-- 불가
Record<키, 변수>
키와 변수명을 자유롭게 쓸 수 없게 제한합니다.
정해진것 만 쓸 수있게 제한 합니다.
Pick<인터베이스명, 키값>
인터페이스 중에 원하는 키만 입력받아 객체를 만듭니다.
Partial 보다는 조건이 조금 더 있군요
Omit<인터페이스명, 키값>
Pick 랑은 반대입니다. 키값에 있는건 안쓰도록 제한합니다.
Nonnullable<타입>
undefined, null, void 가 들어갈 수 없게 만들어줍니다.
이런거 제한하면 함수리턴값 많이 고쳐야하던데 ...
시간은 다 돈이죠 적당히 제한해봅니다.