Typescript Chapter 7 : Index signatures & keyof Assertions
https://www.youtube.com/watch?v=gieEQFIfgYc&t=9179s


에러가 발생한다.
Indexed Access Types이란?
https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html
이렇게
element 는 함축으로 any 타입을 가지고 있다. 왜냐면 string 표현은 index type 에 사용될수 없기 때문이다.

여기서도 에러가 발생한다.

key값이 string .이라는 것을 명시하고 valuer 가 number 이라는것을 명시해야 에러가 없어진다.
단점 typescript 는 미래에 어떤 이름이 들어갈지 모른다.

TodaysTransactiosn 에는 dave 라는key 가 없음에도 에러가 발생하지 않고 undefined 가 발생하는 것을 볼수 있다.

이값을 inerface 에다 넣어서 이 obj 에는 pizza books job 만 key 값으로 사용한다고 명시한다.

두가지만 선언하면 에러가 발생한다.
optional chaing ==?

Optional Propery
name?: string ->
속성의 값이 있어도 되고 없어도 선택적으로 받을 수 있습니다.
출처: https://powerku.tistory.com/273 [프론트엔드 연구소:티스토리]

number[] 값을 줘도 classes?: 는에러가 발생하는이유 위의 설명과 같이 undefined 도 나올수 있기 때문에

key 값을 명시해주지 않고도 에러가 발생하지 않게 하는방법


keyof 타입은 oject 타입을 받아서 string 이나 numeric literal union 의 타입으로 key 값을 배출시킨다.


이번에는 student 이다 ( 소문자 )_
우리는 reference 하고 있는 (student )oject 타입을 알아내서 keyof을 알아내겠다. 의미이다.

student 는 Student 의;형태를 갖고 있는 것으로 여기서는 그냥 typeof 으로 하면 안되고 typeof studnet 를 해서
type 을 뽑아내야된다.


[key:'salry' ] <- 이런거는 안된다.
따라서 Record <stream ('salray','bonus','sidehustle') ,number|string> 을 넣어서
salary 가 number, string 이 가능하게 만든다.

이렇게 가능하게 된다.
하지만

여기에서 또 에러가 발생한다..

이때도 위와 같이 keyof Incomes 을 놓으면 에러가 사라진다.



