👶 TypeScript
여러 제한을 적용한 한정된 다형성
여러 제한을 적용한 한정된 다형성 type TreeNode = { value: string } type LeafNode = TreeNode & { isLeaf: true } type InnerNode = TreeNode & { children: [TreeNode] | [TreeNode, TreeNode] } let a: TreeNode = {value: 'a'} let b: LeafNode = {value: 'b', isLeaf: true} let c: InnerNode = {value: 'c', children: [b]} function mapNode( // ① node: T, // ② f: (value: string) => string ): T{ // ③ return { ...node, value: ..