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

时间:2018-09-13 17:39:07

标签: javascript typescript destructuring

我有一些效果

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

我想键入它以至少描述param1和knownParam1。我在想类似的东西:

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

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

1 个答案:

答案 0 :(得分:0)

是的,您可以通过以下方式实现您想要的东西:

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

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

    // ...
}

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