28/07/2022

key 든 상관없이 다 string이고 값은 string인 타입만들기

https://www.typescriptlang.org/docs/handbook/2/mapped-types.html

interface에서는 | (or) 과 & (and) 사용 불가!
impelenets, private, protected 사용!
private 과 차이점 => 상속 받은 instance에서는 사용가능함!a는 사용할 수 없지만 C에서 protected인b는 사용가능함
instance에서는(=> new C에서는 private 과 protected 둘 다 못씀!) 
- js 변환을 하고 나면! private과 protected 는 다 사라짐!
-zrcho님은 굳이 interface 에 implements 안한다고 함 => readonly 다 쓸 수 있으니께

1:20:00

<T> 로 적어놓고 실제로 사용할 때 뭘 넣을지 결정한다!

extends + 타입으로 제한해줄 수 있음

generic 실제 사용 분석interface,type, class 모두 generic 사용가능 이름 바로 뒤에 <T> 붙이기

타입스크립트가 알아서 잘 추론하고 있음 how?

line 3

number 이고 U는 toString()을 해준 리턴값이니까 string!
line 4-5 filter 함수 2개 분석
line 8을 보면서 input 값과 return 값을 보면서 line 4-5 의 타입 T 나 S를 실제에 대응하는 값으로 바꿔주면서 분석하기!
=> 리턴값이 S 인지 unknown 인지? => S는 extends number 로 narrowing 되어 있음! S로 보는 것이 합리적!
string[]> => 문자열만 들어올 수 있음 line 3 (a:string) => number> T는 콜백함수로 문자열 받아서 숫자 리턴함/ 콜백함수 형태 잡아줌