Có sự khác biệt nào giữa một biến có kiểu ? hay undefined trong Typescript không
Trong Typescript có hai phương pháp khác nhau để nói rằng một thuộc tính có thể là undefined khi tạo một interface:
Phương pháp 1:
interface m1 {
prop?: randomType; // type is (randomType | undefined)
}
Phương pháp 2:
interface m2 {
prop: randomType|undefined; // type is (randomType | undefined)
}
Điều duy nhất rõ ràng ngay lập tức giữa hai cái này mà tôi đã chú ý là khi di chuột qua prop, IntelliSense sẽ hiển thị undefined màu xanh dương cho Phương pháp 1 và màu xanh lá cho Phương pháp 2.
Có còn sự khác biệt nào khác giữa những cái này không?
Câu trả lời #1
Để đơn giản hóa: với ? trường trở nên tùy chọn:
type randomType = {}
interface M1 {
prop?: randomType; // type is (randomType | undefined)
}
interface M2 {
prop: randomType | undefined; // type is (randomType | undefined)
}
const m1: M1 = {} // OK
const m2: M2 = {} // NOK
const m22: M2 = { prop: undefined } // OK
Sân chơi
