ค้นหาเว็บไซต์

TypeScript การตัดกัน: ทำไมฟังก์ชัน & สตริงจึงไม่ใช่ never?


ประมาณตามที่ระบุไว้บนกระป๋อง

type Foo = ((bar: boolean) => number) & string;

ดูเหมือนไม่สามารถแก้ไขเป็น never ได้ เช่นเดียวกับ string & number ชนิดนี้ยังคงเป็นไปไม่ได้ แต่ทำไมมันถึงไม่แสดงว่าเป็นกรณีนี้จนกว่าคนจะพยายามกำหนดค่าให้กับมัน?