MST

星途 面试题库

面试题:TypeScript中Pick工具类型结合函数的应用

已知有以下两个接口: ```typescript interface Product { id: number; name: string; price: number; description: string; } interface ProductPreview { id: number; name: string; price: number; } ``` 编写一个函数`getProductPreview`,该函数接收一个`Product`类型的对象,使用`Pick`工具类型将其转换为`ProductPreview`类型并返回。同时,请考虑如何对函数进行类型检查以确保输入的正确性。
12.0万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function getProductPreview(product: Product): ProductPreview {
    const { id, name, price } = product;
    return { id, name, price };
}

类型检查方面,在 TypeScript 中,函数参数的类型定义 product: Product 就已经确保了传入的参数必须是 Product 类型,这样就能保证输入的正确性。如果传入的参数不符合 Product 类型定义,TypeScript 编译器会在编译阶段报错。

例如:

const product: Product = {
    id: 1,
    name: 'example',
    price: 10.5,
    description: 'desc'
};

const preview = getProductPreview(product);
console.log(preview); 

上述代码中,若尝试传入不符合 Product 类型的对象给 getProductPreview 函数,TypeScript 编译器会指出错误。如:

// 以下代码会报错,因为缺少 'description' 字段
const wrongProduct = {
    id: 1,
    name: 'example',
    price: 10.5
};

const wrongPreview = getProductPreview(wrongProduct);