Typescript 경고 1: 객체 리터럴 유형에서 문자열 리터럴 키와 문자열 키 혼합
경고의 원인은 버그 또는 결함으로 인한 것일 수도 있고 단순히 의도한 대로 작동하는 것일 수도 있습니다.
수시로 이 시리즈에 새 게시물을 추가하겠습니다.
Typescript에는 negate type이 없고 그것 없이는
string
가 a1
와 a2
가 아닌 키를 커버할 수 없기 때문에 string
는 모든 키를 커버해야 합니다.type A = {[x:string]:1, a1:1, a2:2} // error: Property 'a2' of type '2' is not assignable to 'string' index type '1'.
type a = A['something'] // 1
// ^?
type a1 = A['a1'] // 1
// ^?
type a2 = A['a2'] // hmm, we get 2, but it is useless
// ^?
const A:A={something:1, a1:1, a2:2} // error: Type '2' is not assignable to type '1'.
지금까지는 좋았습니다. Typescript 오류 제안은 잘못된 방식으로 작업을 수행하는 것을 방지합니다.
그러나 교차를 사용하는 첫 번째 오류를 통과하는 경우가 있습니다.
type B = {[x:string]:1} & { b1:1, b2:2} // no error
type b = B['something']
// ^?
type b1 = B['b1']
// ^?
type b2 = B['b2']
// ^?
const B:B={something:1, b1:1, b2:2} // error: Type '2' is not assignable to type '1'.
playground
이것은 오류 제안의 결함이라고 생각합니다.
Reference
이 문제에 관하여(Typescript 경고 1: 객체 리터럴 유형에서 문자열 리터럴 키와 문자열 키 혼합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tylim88/typescript-caveat-1-mixing-string-literal-key-and-string-key-in-object-literal-type-2096텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)