Typescript: Partial không hoạt động trong kiểu tổng quát
Partial sẽ báo lỗi khi tôi không có thuộc tính hợp lệ nào, nhưng không báo lỗi khi tôi có ít nhất một thuộc tính hợp lệ. Tại sao? "a" không phải là thuộc tính hợp lệ của User, vậy tại sao tôi không nhận được lỗi trong lần gọi save đầu tiên? Loại generic của tôi có sai không?
interface User {
firstname: string;
}
function save<T extends Partial<User>>(entity: T) {
}
// no error
save({
firstname: 'John',
a: 1,
})
// error
save({
a: 1,
})
// error
let user: Partial<User> = {
firstname: 'John',
a: 1,
}