小编Sar*_*yan的帖子

带有类型或接口的 TypeScript 解构默认参数

我正在编写一个函数,它接受一个可选对象options,它本身包含一个可选属性params。此options对象具有默认值,{}因此可以在函数签名中正确解构。

但是,我在尝试使用接口输入时遇到问题:

type Params = {
  params?: { [key: string]: boolean }
}

interface Foo {
  (options?: Params): void
};

const myFoo: Foo = ({ params } = {}) => {} // Property 'params' does not exist on type 'Params | undefined'.
Run Code Online (Sandbox Code Playgroud)

该错误是有道理的:据编译器所知,options可能是未定义的(当参数设置为optional时由它解释),因此params可能不存在。

但是,它没有考虑可选参数可能具有默认值。然而,我还没有找到一种在类型或接口中正确指示这一点的方法。直接在函数签名中键入确实有效,但这不能重用或导出。

在使用类型或接口时,是否有任何标准方法可以解决这个问题?

types interface destructuring optional typescript

3
推荐指数
1
解决办法
1356
查看次数

标签 统计

destructuring ×1

interface ×1

optional ×1

types ×1

typescript ×1