함수가 주어지면 foo
type 매개 변수 T
는 다음과 같이 올바르게 추론됩니다 string
.
declare function foo<T>(callback: (bar: T) => void): void
// foo<string>(callback: (bar: string) => void): void
// ---> T is inferred string here
foo((bar: string) => { })
그러나 샘플 프로그램은 다음 T
과 같이 추론 할을 unknown
. 그래서 내 질문은 : 왜 T
유형이 콜백의 객체 유형 내부에 중첩되어 해결되지 않습니까?
declare function foo2<T>(callback: (bar: { a: T }) => void): void
// foo2<unknown>(callback: (bar: { a: unknown; }) => void): void
// ---> T is inferred unknown here
foo2(({ a: string }) => { })
나는 이것이 당신이 찾고있는 것 같아요
declare function foo<T>(callback: (bar: T) => void): void
foo((bar: string) => { })
declare function foo2<T>(callback: (bar: T) => void): void
foo2((a: { a: string }) => {} )
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다