首页 > 解决方案 > 是否可以部分定义对象类型?

问题描述

我有一些大意

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

我想输入它来至少描述 param1 和 knownParam1。我在想类似的事情:

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

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

标签: javascripttypescriptdestructuring

解决方案


是的,您可以通过以下方式实现您正在寻找的东西:

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

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

    // ...
}

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


推荐阅读