typescript - 如何通过删除属性将对象从接口A转换为接口B
问题描述
假设我有两个接口:
interface A {
a: string;
b: string;
x: string;
}
interface B {
a: string;
b: string;
}
当我有一个对象实现接口A
并且我想删除该属性x
(然后该对象实现接口B
) - 我如何告诉 TS 我正在尝试做什么?仅delete obj.x;
在对象上执行会导致 TS 抱怨,因为x
interface 是必需的A
。
解决方案
我就是这样做的。
interface A {
a: string;
b: string;
x: string;
}
interface B {
a: string;
b: string;
}
function convertAtoB(a: A) {
delete (a as any).x;
return a as B;
}
推荐阅读
- typo3 - 如何在 Typo3 extbase 后端扩展中将 csv 文件导入数据库
- xslt - XML/XSL 帮助
- android - 避免重复的广义函数
- python-3.x - 如何使用类将文本绘制到窗口?
- c# - 在处理请求中连接到 SQL Server 失败
- javascript - 使用谷歌云功能部署 api
- r - 有没有更好的方法来查询多个站点而不使用此 API 的循环
- php - ord,md5 在 @ 上显示不同的行为
- python - 我应该按照哪个顺序在 Python、DJango 和 DJango-cms 中升级?
- node.js - 如何在 ExpressJS 中使用 echarts?