กรุณามีจำนวนดูต่อไปนี้ทำเทปต่อดีกว่า.
interface Data
บ่งบอกเป็นรูปแบบชุดสีสำหรับรอบการข้อมูล
function check
จะต้องตรวจความถูกต้อไม่ว่าจะได้รับบางส่วน subtree นี้ Data
โครงสร้างของไม่เป็นไรแล้วโยน compile เวลาเกิดข้อผิดพลาดถ้าไม่ได้(หวังว่าจะได้มาพร้อมกับเป็นมากกว่าหรือน้อยลงกล่องแสดงรายละเอียดแล้วเข้าใจได้ว่าข้อความผิดพลาดและไม่ใช่แค่"...ไม่ assignable ต้องประเภท'ไม่เคย").
interface Data {
namespace1: {
keyA: string,
keyB: string
},
namespace2: {
keyC: string,
keyD: string
}
}
// This function's only purpose is to perform a compile-time check
// whether the given partial data is valid.
// Returns the first and only argument in case of success,
// otherwise a compile-time error will occur.
function check<??>(
partialData: ????
): ?????? {
return partialData
}
// Example 1 => okay
const validPartialData1 = check({
namespace1: {
keyB: 'b'
}
})
// Example 2 => okay
const validPartialData2 = check({
namespace1: {
keyB: 'b'
},
namespace2: {
keyC: 'c'
}
})
// Example 3 => okay
const validPartialData3 = check({})
// Example 4 => compile-time error!
const invalidPartialData1 = check({
namespace1: {
keyC: 'c'
}
})
// Example 5 => compile-time error!
const invalidPartialData2 = check({
xyz: {
keyA: 'a'
}
})