Các vấn đề về loại trả về chỉ số chung typecript
Dec 14 2020
Tôi sử dụng generics typecript trong dự án của mình nhưng nó có vẻ không hoạt động tốt.
thí dụ:
interface Test<T, P> {
a?: (v: T) => P
b?: (v: P) => void
}
const fn1 = <T, P>(_config: Test<T, P>) => {}
fn1({
a: (p) => 1,
b: (p) => {},
})
Tôi nghĩ params 'a'nhập giống như:
Test<unknown, number>.a?: ((v: unknown) => number) | undefined
Nhưng trên thực tế:
Test<unknown, unknown>.a?: ((v: unknown) => unknown) | undefined
Tôi không biết tại sao, ai đó có thể giúp tôi? Cảm ơn.
Trả lời
Passersby Dec 14 2020 at 13:15
Vì bạn không xác định loại trên dòng này: b: (p) => {}
Khi đó TS không thể suy ra loại P, mặc dù bạn trả lại nó trong định nghĩa trên cho a.