inflearn logo
강의

講義

知識共有

TypeScriptを始める

列挙型

2: 38

196

noonssub1004

投稿した質問数 6

0

 
enum 타입으로 정의된 Fruit 은 객체로 존재한다고 하셨는데, 어째서 5번째 "인덱스" 를 알수 있다고 하신건가요?
자바스크립트에서는 배열에서 인덱스를 알려면 당연히 '[ ]' 기호를 사용해서 인덱스에 접근할수 있고,
자바스크립트에서의 객체의 인덱스를 알려면 함수의 인수에 '...' 를 사용해서 객체를 받아오고, 해당 객체를 함수 내부에서 콘솔로그로
출력해보면 배열안에 해당 객체가 들어있는 것을 알수 있기 때문에 "인덱스" 라는 것에 접근할수 있는 것으로 알고 있습니다.
const obj = {
  name: 'james',
  age: 20
}

function f1(...arg){
  console.log(arg); // [ { name: 'james', age: 20 } ]
  console.log(arg[0]); // { name: 'james', age: 20 }
}
f1(obj)


그런데 enum 타입으로 정의된 변수 Fruit 은 어떻게 해서 "인덱스" 로 접근이 가능하게 되는 것인가요?

말씀하신 코드를 (Fruit[5] ) 출력해보지 않고 보기만 하면 Fruit 은 배열인것인거고, 5번째 요소가 존재하는걸로 이해하게 되어서

Fruit 는 배열인것이고, Fruit 라는 배열안에 요소가 5개가 들어가있는 것으로 이해가 되서요....

현재 enum 타입으로 정의된 Fruit 내부의 요소는 총 3개인데... 제가 잘못 이해하고 있는 걸까요?

typescript

回答 1

0

landvibe

안녕하세요
제가 '인덱스'라고 말하면서 헷갈리게 해드렸네요
Fruit 은 배열이 아니고 객체입니다
Fruit 객체는 아래 6개의 속성을 갖게 됩니다
'Apple', 'Banana', 'Orange', '0', '5', '6' 

컴파일된 코드를 보면 Fruit 은 아래처럼 초기화되고 있습니다
var Fruit = {};
Fruit['Apple'] = 0;
Fruit['Banana'] = 5;
Fruit['Orange'] = 6;
Fruit[0] = 'Apple';
Fruit[5] = 'Banana';
Fruit[6] = 'Orange';

 

lodash 가 안될때

0

90

1

에궁 처음부터 막히네요...ㅜㅜ

0

76

1

[함수타입2] 함수 this에 대한 타입 부분, 제가 제대로 이해했을까요?

0

266

1

객체 할당 관련 질문 있습니다.

0

326

1

퀴즈 관련 질문이 있습니다.

0

344

1

공변성 강의

0

256

2

시간 4:31 인터페이스 타입가드에 대해

0

231

1

리턴값이 연산인 제네릭 에러 해결

0

428

2

code runner 사용 시 output이 깨지는 문제

0

2457

2

5:55 내용에 대하여 질문드립니다.

0

440

2

extends에 관하여

0

293

1

return 타입

0

177

1

/bin/sh: node_modules/.bin/ts-node: No such file or directory 오류

0

364

1

Person 과 Product

0

208

1

tsc 기본이 es3

0

313

1

[#다시질문] Person과 Product 관계

0

160

1

타입스크립트 부분실행 질문드립니다

0

711

1

함수 타입2 에서 1:53

0

329

2

1:19 에서 interface String

1

272

2

안녕하세영 정리

0

167

1

this 질문

0

222

1

function add

0

179

2

타입스크립트 사용하는 이유 : 높은 생산성

0

198

2

코드

0

174

1