gpt4 book ai didi

typescript - 如何将对象转换为另一种类型并删除 TypeScript 中不需要的字段?

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:08 25 4
gpt4 key购买 nike

假设我有以下代码:

interface A {
a: number;
}

interface B extends A {
b: number;
}

const b: B = {a: 1, b: 5};
const a: A = b as A;

现在变量 a 的类型为 A,但它内部仍然包含 b。有时这是不可取的——我想确定的是,如果我有一个 A 类型的变量,它具有 A 类型的确切字段。我想知道 TypeScript 是否有某种“硬转换”,它会在类型之间转换时删除任何不需要的字段。

最佳答案

TypeScript 中没有强制转换,因为这不是 TypeScript 的工作方式。 TS 是 JS 之上的类型层。当您在 TS 中分配一个类型时,您没有设置类型,您注释给定的表达式是某种类型。当 TS 代码转译为 JS 时,所有的类型信息都会被剥离。

或者换句话说:类型系统是 JS,使用 TS 你只是声明一个变量是某种类型。经常发生的情况是,您在设计时分配了错误的类型,并在调试期间惊奇地发现变量的类型与预期的完全不同。

如果您想确保某个属性从对象中移除,您需要使用 JS 方式(并且 - 如果需要 - 用 TS 注释结果)。检查this Q&A查看如何从对象中删除属性。

关于typescript - 如何将对象转换为另一种类型并删除 TypeScript 中不需要的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50378612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com