当前位置: 首页 > 知识库问答 >
问题:

如何将自定义界面转换为记录?

景鹏飞
2023-03-14

给定以下示例代码

interface MyInterface { foo: string; }

function doSomethingWith(x: Record<string, unknown>) { /* ... */ }

const myInterface: MyInterface = { foo: 'bar' };

doSomethingWith(myInterface);

不可能将变量传递给函数,因为

类型为“MyInterface”的参数不可分配给类型为“Record”的参数

我通过转换变量解决了这个问题

const myInterfaceAsRecord = (myInterface as unknown) as Record

想知道是否有“更好”的方法将接口传递给函数?


共有2个答案

汲永嘉
2023-03-14

一个选项是从记录扩展接口

interface MyInterface extends Record<string, unknown> { foo: string; }

function doSomethingWith(x: Record<string, unknown>) { /* ... */ }

const myInterface: MyInterface = { foo: 'bar' };

doSomethingWith(myInterface);
乐正宜人
2023-03-14

只需使用<code>类型</code>而不是<code>接口</code>

type MyInterface = { foo: string; }

function doSomethingWith(x: Record<string, unknown>) { /* ... */ }

const myInterface: MyInterface = { foo: 'bar' };

doSomethingWith(myInterface);

有关更多上下文,请参见此答案

 类似资料:
  • 我将springboot控制器与@RequestBody一起使用。我有以下json请求正文 我有一个对应的POJO 我有控制器就像 显然它不起作用,因为是请求中的字符串,而它在MyObject中是布尔值。我希望它有一个逻辑,所以如果在请求中,它将在MyObject中转换为布尔值。Spring有什么机制来实现这一点?

  • 我对大摇大摆的文档很陌生。我们有一个现有的项目正在为RESTFul Web服务开发进度语言。不同的基于资源的URL以Application/JSON格式使用和生成。下面给出了一个资源url的输入和输出json格式: 如何将上述请求和响应json格式转换为swagger 2.0 json格式? 谢了!

  • 这是我的字符串格式的肥皂xml,我需要如何在Farm对象中形成它。Farm是我的自定义类,任何库都是现成的 使用此代码后,我得到了异常 意外元素(uri:“http://yyyyyy . yyyyy * * * * * * * *”,local:“farm”)。预期的元素有

  • 我有一个类型 现在我想做这样的事情。 如何将我的 转换为基元类型? 它给我的错误是: 将“Rating”类型转换为“number”类型可能是错误的,因为这两种类型都没有充分重叠。如果这是有意的,首先将表达式转换为“未知” 我已经经历过了,但我想要的是它的反面 编辑: tsconfig.json tsc版本:3.2.1

  • 我试图用以下格式转换一个JSON: 我已经计算了JSON,现在我需要使用evaluatejsonpath输出中的属性来获得以下格式: 它们是内置的处理器来完成此转换吗,还是需要在executionscript处理器中开发一个Python脚本?

  • 我有这样的记录: 它获取default和方法。 如何调整这些方法使其具有自定义行为?假设,我想忽略方法中的。