面试题答案
一键面试在前端开发中,以下场景会用到TypeScript的Partial
类型:
- 表单处理:当处理表单数据时,用户可能只填写部分字段,此时可以使用
Partial
类型来表示可能不完整的数据对象。
interface User {
name: string;
age: number;
email: string;
}
function updateUser(user: Partial<User>) {
// 假设这里是更新用户的逻辑
console.log('Updating user:', user);
}
// 调用函数,只传递部分字段
updateUser({ name: 'John' });
- API请求参数构建:在构建API请求参数时,某些参数可能是可选的,使用
Partial
类型可以灵活地构建参数对象。
interface ApiParams {
page: number;
limit: number;
sortBy: string;
}
function fetchData(params: Partial<ApiParams>) {
let url = 'https://example.com/api?';
if (params.page) {
url += `page=${params.page}&`;
}
if (params.limit) {
url += `limit=${params.limit}&`;
}
if (params.sortBy) {
url += `sortBy=${params.sortBy}`;
}
// 发起API请求的逻辑
console.log('Fetching data from:', url);
}
// 调用函数,只传递部分参数
fetchData({ page: 1 });
- 对象属性更新:当需要更新一个对象的部分属性时,
Partial
类型可以确保传入的对象只包含有效的属性且属性类型正确。
interface Product {
id: number;
name: string;
price: number;
}
function updateProduct(product: Product, changes: Partial<Product>) {
return { ...product, ...changes };
}
const originalProduct: Product = { id: 1, name: 'Widget', price: 10 };
const updatedProduct = updateProduct(originalProduct, { price: 15 });
console.log(updatedProduct);