Tìm kiếm trang web

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

Bài viết liên quan