Typescript 具有已删除属性的接口/类型

Typescript 具有已删除属性的接口/类型,typescript,types,interface,Typescript,Types,Interface,我尝试过创建许多不同的接口s和类型s,以不同的方式组合并集和交集,但都失败了 我有一个带有一些属性的接口: 接口A{ 名称:字符串; 性质:编号; //还有很多。。。 } 我想基于a创建一个新接口(或类型,我现在不关心),该接口已删除name,并添加了一些其他属性,结果是: 接口B{ 性质:编号; 年龄:人数; //A拥有的一切,除了名字 } 我将如何使用交叉/并集或其他类型脚本的可能性来实现这一点 我甚至尝试在A和另一个界面之间创建一个交集,其中name?:never删除该字段,但如何添加

我尝试过创建许多不同的
接口
s和
类型
s,以不同的方式组合并集和交集,但都失败了

我有一个带有一些属性的接口:

接口A{
名称:字符串;
性质:编号;
//还有很多。。。
}
我想基于
a
创建一个新接口(或类型,我现在不关心),该接口已删除
name
,并添加了一些其他属性,结果是:

接口B{
性质:编号;
年龄:人数;
//A拥有的一切,除了名字
}
我将如何使用交叉/并集或其他类型脚本的可能性来实现这一点

我甚至尝试在
A
和另一个界面之间创建一个交集,其中
name?:never
删除该字段,但如何添加其他属性?

使用
省略&{other properties}
使用
省略&{other properties}
接口A{
interface A {
    name: string;
    property: number;
    foo: string;
}

// Get rid of name property
type AWithoutName = Omit<A, "name">;

// Now use the type to get all of A without name
const foo: AWithoutName = { property: 2, foo: "hello" }

// extend this type to add more props without name
interface AddMoreToA extends AWithoutName {
  bar: string;
}

// use in this way
const bar: AddMoreToA = { property: 2, foo: "hello", bar: "world" }
名称:字符串; 性质:编号; foo:string; } //去掉name属性 键入AWithoutName=Omit; //现在使用该类型获取所有不带名称的 const foo:AWithoutName={property:2,foo:“hello”} //扩展此类型以添加更多没有名称的道具 接口AddMoreToA扩展了一个没有名称的AW{ 酒吧:字符串; } //这样使用 const-bar:AddMoreToA={property:2,foo:“你好”,bar:“世界”}
接口A{
名称:字符串;
性质:编号;
foo:string;
}
//去掉name属性
键入AWithoutName=Omit;
//现在使用该类型获取所有不带名称的
const foo:AWithoutName={property:2,foo:“hello”}
//扩展此类型以添加更多没有名称的道具
接口AddMoreToA扩展了一个没有名称的AW{
酒吧:字符串;
}
//这样使用
const-bar:AddMoreToA={property:2,foo:“你好”,bar:“世界”}