Typescript 주의 사항 4: `${infer P}`를 확장하지 않으면 `${infer P}/`를 확장하지 않는 것과 다른 결과가 나타납니다.
type a = never extends `${infer P}` ? P : 1 // never
// ^?
type b = never extends `${infer P}/` ? P : 2 // string
// ^?
type a1 = never extends `${infer P extends string}` ? P : 1 // never
// ^?
type b1 = never extends `${infer P extends string}/` ? P : 2 // string
// ^?
type a2 = never extends `${infer P extends number}` ? P : 1 // never
// ^?
type b2 = never extends `${infer P extends number}/` ? P : 2 // number
// ^?
type a3 = never extends `${infer P extends null}` ? P : 1 // never
// ^?
type b3 = never extends `${infer P extends null}/` ? P : 2 // null
// ^?
type a4 = never extends `${infer P extends undefined}` ? P : 1 // never
// ^?
type b4 = never extends `${infer P extends undefined}/` ? P : 2 // undefined
// ^?
type a5 = never extends `${infer P extends boolean}` ? P : 1 // never
// ^?
type b5 = never extends `${infer P extends boolean}/` ? P : 2 // boolean
// ^?
type a6 = never extends `${infer P extends bigint}` ? P : 1 // never
// ^?
type b6 = never extends `${infer P extends bigint}/` ? P : 2 // bigint
// ^?
playground
이것은 bug
Reference
이 문제에 관하여(Typescript 주의 사항 4: `${infer P}`를 확장하지 않으면 `${infer P}/`를 확장하지 않는 것과 다른 결과가 나타납니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tylim88/typescript-caveats-3-never-extends-infer-p-yield-different-result-than-never-extends-infer-p-i6n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)