มันจะเป็นไปได้ simplify คนประเภทนั้นคือการแสดงในคนประเภท-ทูลทิปนั่นมันเห็นได้ตอนที่ฉันเมาส์อยู่เหนือไปเป็นตัวแปรใน Typescript?
ฉันต้องทำตามรหัส:
type Debug<T> = {
[key in keyof T]: T[key]
}
type Chainable<Acc = {}> = {
option: <K extends string, V>(key: K, value: V) => Chainable<Acc & {[k in K]: V}>;
get: () => Debug<Acc>;
}
declare const config: Chainable
const result = config
.option('foo', 123)
.option('name', 'type-challenges')
.option('bar', { value: 'Hello World' })
.get()
type X = typeof result;
ตอนที่ฉันเมาส์อยู่เหนือมา result
ตัวแปรอฉันได้:
[
อย่างไรก็ตามตอนที่ฉันเมาส์อยู่เหนือมา type X
ฉันเห็น:
คำถาม:
- ทำไมพวกนั้นประเภทการแสดงที่แตกต่างไปไหม? (แม้ว่าพวกเขาเป็นตัวแทนแบบเดียวกัน)
- มันมีทางที่จะแสดงประเภทเหมือนมันแสดงในคนที่สองหน้าจอ?