Thực sự phụ thuộc vào những gì bạn đang cố gắng làm. Các loại là tài liệu trong bảng chữ, vì vậy bạn muốn thể hiện ý định về cách thứ này sẽ được sử dụng khi bạn tạo loại.
Tùy chọn 1: Nếu Người dùng có thể có một số nhưng không phải tất cả các thuộc tính trong suốt thời gian tồn tại của họ
Đặt tất cả các thuộc tính là tùy chọn
type User = {
attr0?: number
attr1?: string
}
Tùy chọn 2: Nếu các biến chứa Người dùng có thể bắt đầu rỗng
type User = {
...
}
let u1: User = null;
Mặc dù, thực sự, ở đây nếu vấn đề là khai báo đối tượng Người dùng trước khi nó có thể biết được những gì sẽ được gán cho nó, bạn có thể muốn thực hiện let u1:Usermà không cần bất kỳ nhiệm vụ nào.
Tùy chọn 3: Những gì bạn có thể muốn
Thực sự, tiền đề của việc sắp chữ là đảm bảo rằng bạn đang tuân theo mô hình tinh thần mà bạn đã phác thảo trong các loại để tránh mắc lỗi. Nếu bạn muốn thêm từng thứ vào một đối tượng, đây là một thói quen mà TypeScript đang cố gắng khiến bạn không làm.
Nhiều khả năng, bạn muốn tạo một số biến cục bộ, sau đó gán cho biến chứa Người dùng khi biến đó sẵn sàng trở thành Người dùng toàn quyền. Bằng cách đó, bạn sẽ không bao giờ bị bỏ lại với Người dùng được hình thành một phần. Những thứ đó thật thô thiển.
let attr1: number = ...
let attr2: string = ...
let user1: User = {
attr1: attr1,
attr2: attr2
}
userthuộc loạiUser | {}hoặcPartial<User>, hoặc bạn cần xác định lạiUserloại để cho phép một đối tượng trống. Ngay bây giờ, trình biên dịch đang cho bạn biết chính xác rằng đóuserkhông phải là aUser.