是否可以部分定义对象类型?

Is it possible to partially define an object type?

我有一些效果

function(param1, { knownParam1, ...opts })

我想输入它至少描述 param1 和 knownParam1。我在想:

type Param2 = {
   knownParam1: string,
   ...otherParams: any
}
type Parameters = {
   param1: string
   param2: Param2
}

TypeScript 支持这种概念吗?我感觉不是,因为解构是一个新概念。

是的,您可以通过以下方式实现您的目标:

type Param2 = { 
    knownParam: string;
    [key: string]: unknown;
}

function myFn(param1: string, param2: Param2) {
    const {
         knownParam,
         ...opts
    } = param2;

    // ...
}

参数二的类型是一个对象,其任何已知属性与任何其他未知类型的属性相交。