class가 값이 될 수 있다는 말을 이해하기 어렵습니다.
127
11 asked
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다!
[코드팩토리 디스코드]
https://bit.ly/3HzRzUM
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요, javascript 강좌도 열심히 소화하고 온 수강생입니다.
이번 강의가 좀 난해한데, javascript 강좌를 잘 소화했다면 어려움없이 이해했을거라고 하셔서..ㅎㅎ 제가 아직 소화를 못하고 있나 싶은 생각도 듭니다.
"class가 값이 된다는 것은, javascript 관점에서 보면 실제 class의 정의가 될 수 있다."
"javascript에서는 객체로 class를 만든다."
"class Dog 는 javascript class 형태의 값으로 선언할 수 있다."
위의 세 문장은 수업 중 언급하셨던 문장이고, 제가 가장 혼란스러워하는 부분입니다.
이 부분에 대한 저의 이해는 아래와 같습니다.
class Dog { name: string constructor(name: string){ this.name = name } bark(){ return `${this.name}가 짖습니다.` } }
위 class 정의가 '값'이 될 수 있는 이유는,
값이 될 수 있다는 건 변수에 할당할 수 있다는 의미이고
class는 함수이자 객체이기 때문에
signature가 동일하면 동일한 것으로 간주한다.
그러므로 Dog type의 ori 변수에
{ name: '별이', bark(){ return `${this.name} 이에요` } } 를 할당 할 수 있다
따라서 class의 정의는 값이 될 수 있다
이해의 과정 중 마지막 두 문장에 확신이 없습니다.
그래서 class 정의가 값이 될 수 있다는 것이 여전히 이상하게 보입니다.
관련하여 제가 잘못 이해하고 있는 부분 혹은 이해를 도울 수 있는 예시 등을 부탁드려도 될까요!
미리 감사드립니다 :)
Answer 1
0
안녕하세요!
TS에서 값과 타입을 나눠서 이해하는건 매우 중요합니다.
TS에서의 타입은 저희가 흔히 type과 interface로 구분하는 요소들입니다.
이 타입들은 JS 세계에서는 존재하지 않습니다.
하지만 class는 JS와 TS 세계 모두에 존재합니다. JS class 자체로 TS 타입을 유추 할 수 있습니다. 즉, 따로 type이나 interface를 선언해서 class 를 표현할 필요가 없습니다.
감사합니다!
ts강의 42. override 마지막즘 질문
0
42
1
25. js array의 문제점 4:55쯤 질문입니다
0
31
1
union 기본기 7분 53초 질문 드립니다.
0
117
2
Equality Narrowing 관련 질문
0
117
2
tsconfig.json 설명
0
124
2
환불 관련 질문 드립니다.
0
179
1
재너릭이랑 any 차이가 뭔가요?
0
221
2
리플렉션과 데코레이터 사용시 의문점
0
135
2
변수의 선언이 중복되었다고 할 때
0
162
2
type 으로 함수의 형식을 정의하고 함수를 정의할 때
0
144
1
declare 키워드가 가끔 나오던데 이건 뭔가요?
0
150
2
null값의 타입은 object 아닌가요?
0
188
1
타입? 인터페이스? 질문있습니다
0
147
1
type functionOnly = Extract<string| (()=> void), Function> 의 의미
0
171
2
npm install cache error
0
205
1
12_experimental_decorator, class decorator
0
131
1
9_class/7_override.ts, super 키워드 질문
0
211
2
강의 계획이 궁금합니다!
0
289
1
instantiator 질문
0
151
1
따라하는데 에러 생기네요
1
390
2
webstorm에서 ts-node 설치해도 문제가 발생하고 있습니다.
0
485
3
infer를 사용한 type의 쓰임새
0
131
1
혹시 수업하면서 작성된 코드는 따로 받아 볼 수 없나요?
0
203
1
object intersection에서 유니언으로 타입 질문
1
129
1

