首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类型记录:我如何重构[Record<string,unknown>回空,Record<string,unknown> \ null]?

类型记录:我如何重构[Record<string,unknown>回空,Record<string,unknown> \ null]?
EN

Stack Overflow用户
提问于 2021-01-26 10:49:43
回答 2查看 587关注 0票数 1

这是我的职责:

代码语言:javascript
复制
function foo(
  hello: fooOptions = {}
): [Record<string, unknown> | null, Record<string, unknown> | null] {

是否有可能重构这一行,以使它看起来稍微好一点?

代码语言:javascript
复制
[Record<string, unknown> | null, Record<string, unknown> | null]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-26 10:53:52

是的,有可能:

代码语言:javascript
复制
type fooOptions = {}

type Nullable<T> = T | null
type Obj = Record<string, unknown>;

function foo(
  hello: fooOptions = {}
): [Nullable<Obj>, Nullable<Obj>] {

  return null as any
}

操场链接

更通用的解决方案:

代码语言:javascript
复制
type fooOptions = {}

type Nullable<T> = T | null
type Obj = Record<string, unknown>;

interface FixedLengthArray<T extends any, L extends number> extends ReadonlyArray<T> {
  0: T;
  length: L;
}

function foo1(
  hello: fooOptions = {}
): FixedLengthArray<Nullable<Obj>, 2> {

  return [{}, {}, {}] // expected error
}

function foo2(
  hello: fooOptions = {}
): FixedLengthArray<Nullable<Obj>, 2> {

  return [{}] // expected error
}

function foo3(
  hello: fooOptions = {}
): FixedLengthArray<Nullable<Obj>, 2> {

  return [{},{}] // ok
}

function foo4(
  hello: fooOptions = {}
): FixedLengthArray<Nullable<Obj>, 3> {

  return [{},{}] // expected error
}

Shamelesly从这里失窃

你也可以对固定长度的数组使用递归,但有时递归可以加热你的笔记本电脑))

票数 0
EN

Stack Overflow用户

发布于 2021-01-26 20:47:41

另一种选择是分别创建一个类型,以便:

代码语言:javascript
复制
type ReturnResponse = [Record<string, unknown> | null, Record<string, unknown> | null];

function foo(
  hello: fooOptions = {}
): ReturnResponse {

我们还可以将类型放在某个单独的文件中并导出它。在一个单独的文件中,它将是:

代码语言:javascript
复制
export type ReturnResponse = [Record<string, unknown> | null, Record<string, unknown> | null];

我们会在使用ReturnResponse的文件中导入它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65899919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档