제네릭 함수를 설정하고 호출할 때는
타입파라미터를 이런 식으로 지정하고 호출해도 되고, 그렇게 하지 않아도 타입스크립트가 type argument inference를 해주기도 한다. 하지만 복잡한 코드에서라면 inference가 안 되는 경우도 있으므로 이럴 때는 명시적인 타입 파라미터 지정이 필요할 것이다.
배열을 나타낼 때는
이런 식으로 Type[] 또는 Array 이렇게 나타낼 수 있다.
제네릭 클래스의 경우 이렇게 나타내면 된다.
이때 유의해야할 점은 제네릭 클래스에서 이런 타입 파라미터는 instance side와만 관련이 있고, static side랑은 관련이 없다는 점이다. 그러니까 static 멤버들은 클래스의 타입 파라미터를 사용할 수 없다.
참고로 제네릭에 constraint를 둘 때 타입 파라미터를 이런 식으로도 사용할 수 있다.
현재 x에 존재하지 않는 m이라는 키 값을 사용하려고 했기 때문에 에러가 뜬 것이다.
그리고 이런 식으로 constructor function을 표시해서 사용하는 것도 가능하다.
object 타입을 대상으로 작동하는 연산자로
지금 위의 코드에서는 type A가 number이지만
아래 코드에서는 type M이 string | number이다. 그 이유는 자바스크립트 개겣의 키는 항상 string으로 강제되기 때문이다. 그러니까 obj[0]은 항상 obj["0"]과 같다.
... To be continued