首页 > 解决方案 > 对象传播不适用于 TypeScript 中的泛型?为什么不?

问题描述

在打字稿操场上试试这个简单的例子

//
// EXAMPLE ONE -- GENERIC DOESN'T WORK
//

interface Car {
    fuel: number
}

function handleCar<GenericCar extends Car = Car>(car: GenericCar) {
    return {...car} // ERROR
}

//
// EXAMPLE TWO -- WORKS FINE WITHOUT GENERIC
//

interface Car2 {
    fuel: number
}

function handleCar2(car: Car2) {
    return {...car}
}

我发现在示例一中,{...car}给出了以下打字稿错误:error TS2698: Spread types may only be created from object types.

是什么赋予了?与此同时,我正在使用{...<any>car}

标签: typescriptgenerics

解决方案


推荐阅读