TypeScript Covariant 202101 - ChoDragon9/posts GitHub Wiki
- ๊ณต๋ณ์ฑ(Covariant)
- ๋ฐ๊ณต๋ณ์ฑ(Contravariant)
- variant: ๋ณ์ข , ์ดํ
- co- (prefix): ํจ๊ป, ๊ฐ์ด
- joint, together, with์ด๋ผ๋ ์๋ฏธ
- ์ถ์ฒ
- contra- (prefix): ๋ฐ๋
- against, opposite๋ผ๋ ์๋ฏธ
- ์ถ์ฒ
ํ์
์์คํ
์์๋ ๋ณ์ฑ์ด๋ผ๋ ๊ฐ๋
์ด ์๋ค. List<String>
์ List<Any>
์ ๊ฐ์ด ๊ธฐ์ ํ์
(List
)๊ฐ ๊ฐ๊ณ , ํ์
์ธ์(String
, Any
)๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ ํ์
์ด ์ด๋ค ๊ด๊ณ๊ฐ ์๋์ง ์ค๋ช
ํ๋ ๊ฐ๋
์ด๋ค.
-
A โผ B
: A๋ B์ ์๋ธํ์ -
A โ B
: Aํ์ ์ ์ธ์๋ฅผ ๋ฐ์์ Bํ์ ์ ๋ฐํํ๋ ํจ์ ํ์ -
x : A
: x๋ A ํ์ ์ ๊ฐ์ง
- ์ผ๋ฐ์ ์ธ ๊ณต๋ณ์ฑ ์์น์์๋ ์ ๋์ธ ํ์ ์ผ๋ก ์ถ๋ก
- ํจ์ ์ธ์์ธ ๋ฐ๊ณต๋ณ์ฑ ์์น์์๋ ์ธํฐ์น์ ํ์ ์ผ๋ก ์ถ๋ก
ํจ์์ ์ธ์๊ฐ ๋ฐ๊ณต๋ณ์ฑ์ด๋ผ๋ ์ฆ๋ช ์ ์๋ ๋ฐ, infer๋ ์ ์ธํฐ์น์ ํ์ ์ผ๋ก ์ถ๋ก ํ๋๊ฐ??