인터페이스와 함수의 차이
크다 작다로 접근하게 되서 크기를 재려고(?)하니 어려워지는게 아닌가 싶습니다.단순하게interface A { prop1: string } interface B { prop1: string; prop2: number; } let a: A = { prop1: `type A`} let b: B = { prop1: `type B`, prop2: 2}의 경우a 는 prop1를 포함하는 어떤 객체든 가질 수 있고b는 prop1, prop2를 포함하는 어떤 객체든 가질 수으니a 에는 b를 할당할 수 있으나 (a는 prop1만 분명히 존재하면 되니까) a = b; // possibleb 에는 a를 할당할 수 없고 (b는 prop2가 없으면 타입 오류인데 a는 prop1으로만 존재하는 경우도 있으니까)b = a // type errorlet fn1 = function(a: number) {} let fn2 = function(a: number, b: number) {}이런 경우라면fn1는 number 타입의 파라미터 하나만 받는 함수를 가질 수 있고fn2는 number 타입의 파라미터와 string 타입의 파라미터를 추가로 받는 함수를 가질 수 있으니fn1에는 prop1 한개만 받으니까 prop1과 prop2 두 개 파라미터를 받아야 하는 fn2를 할당 할 수 없고fn1 = fn2 // type errorfn2에는 prop1과 prop2를 받으니까 prop1과 undefined인 prop2를 전달하게 되는 셈인 fn1은 할당 가능한fn2 = fn1 // possible형태로 생각하면 되지 않을까 싶습니다.(그런데 제가 제대로 이해한건 맞는..거.........겠............죠......?)