반응형
사소하다 아래 코드에서 a=b는 되는데 왜 c = {a:"a", b: "B"} 가 안될까?
type A = { a : string }
type B = { a : string, b : string }
let a:A = {a: 'a'};
let b:B = {a: "A", b: "B"};
a = b; // OK
let c:A = {a: "A", b: "B"}; // Error
답 : excess property checking only applies to object literals being directly assigned to a type with fewer properties. The line a = b is not assigning an object literal at all, so no excess property checks happen.
https://levelup.gitconnected.com/typescript-excess-property-checks-6ffe5584f450
https://velog.io/@goldentrash/Interface%EC%99%80-Excess-Property-Check
https://www.typescriptlang.org/docs/handbook/interfaces.html
반응형
'Web > Javascript|TypeScript' 카테고리의 다른 글
[typescript] interface 키값이라고 하기 (0) | 2021.10.19 |
---|---|
[Javascript][공부하자] Higher-Order Function (HOF) (0) | 2021.10.18 |
[classnames] Could not find a declaration file for module (0) | 2021.07.07 |
[JAVASCRIPT] 한번 쯤 궁금한것 (0) | 2021.06.30 |
[Javascript] 입문/초보 참고 사이트 (0) | 2021.06.22 |