(저의 개인적 성향입니다 피드백은 언제나 환영입니다~)
난 모든지 공부 할때만 보면 왜 사용해야하는지를 찾아본다. 그 궁금증이 풀리지않으면 진도가 안나간다..ㅠ
처음 1년동안은 그냥 막 복사하고 사용한 결과 내 머리속에 남는게 하나도 없다 응용도 못하고 아무것도 못한다 꼭 먼저 개념을 보고 개념만 외우지 말고 왜 사용해야하는지 예시를 무조건 파악을 해야한다. 이 말은 내 말이 맞다고 판단된다 다들 그렇게 해주세요 제발 히히
자자 왜 사용해야 하는지 예시로 알려드리겠습니다.
외국 개발자들이 만들때 의미없게 만들지 않아요 readonly 이걸 그냥 해석해 보면 읽기 전용입니다
?? 읽기 전용?? 자 그럼 여기서 저거를 사용하면 읽기만 가능한다는것일까?? 수정은 안되나?? 이렇게 생각하면 90%는 이해한것입니다!!
사용방법과 어디서 사용하는지를 알아야겠지요 ?? Gabojago
type User = {
_id : string,
name: string,
email: string,
isActive: boolean
}
let myUser: User = {
_id : 'asdqwdqwd1',
name: 'namgiho',
email: 'namgiho96@gmail.com',
isActive: true
}
myUser._id = 'askdmlasmkda'
이코드를 봤을때 먼저 회원User 라고 생각해 봅시다. User 에 고유 아이디가 바뀌면 그 유저가 다른유저랑 판별이 안되서 고유아이디는 정말 중요합니다!! RDB(Relational Database)는 그래서 PK를 사용합니다
근데 이렇게 되면 myUser.id 에 데이터가 수정이 되겠지요?? 그러면 망하는겁니다 조회나 해당유저 업데이트를 할때 어떤 고유에 아이디가 아닌데 어떻게 수정을 하죠?? 이렇게 생각하니까 정말 큰일인거 같죠??
type User = {
readonly _id : string,
name: string,
email: string,
isActive: boolean
}
let myUser: User = {
_id : 'asdqwdqwd1',
name: 'namgiho',
email: 'namgiho96@gmail.com',
isActive: true
}
myUser._id = 'askdmlasmkda'
이제 아이디앞에 readonly 라고 주면 어떻게 될까요??
와... 바로 에러 나는거 보이세요?? 해석하면 readonly 는 수정할수 없습니다. 그냥 게임 끝이죠 뭐
읽기만 가능한 기능을 해주는거죠 즉 데이터를 수정할수없고 볼수만 있는 형태 인거죠
아직 가지마세요!! ㅋㅋㅋㅋㅋ interface 랑 class 에서 사용하는법만 배우고 후딱 가요
이제 이해했다고 생각하고 다음으로 빠르게 갈게요
interface User = {
readonly _id : string,
name: string,
email: string,
isActive: boolean
}
let myUser: User = {
_id : 'asdqwdqwd1',
name: 'namgiho',
email: 'namgiho96@gmail.com',
isActive: true
}
myUser._id = 'askdmlasmkda'
type 을 그냥 interface 로 바꿔 주시면 됩니다. 하나를 이해하면 그다음은 이해 설명이 필요합니까?
class User {
private readonly id: id = 'qweqweqwe';
private readonly name: string;
constructor() {
this.name = 'namgiho';
}
update() {
this.id = 'qweqweqweqwe'; // Error! read-only property므로 변경이 불가능합니다
}
}
Class 내부에서는 property에 설정할수있어요
property 선언 혹은 constructor에 값을 할당할 수 있다.
중간 변경이 불가능 합니다. 말 그대로 "읽기 전용" 잊어먹지하세요
이상으로 readonly 였습니다 이제 좋아요 누를꺼 아니면 오지마세요 절대 잊어먹지마세요 화이팅~
아 피드백은 환영입니다 ~~ㅎㅎ