有一个最小的可重复性示例:

interface BasicObject {
    name: string;
}

interface Object extends BasicObject {
    code: string
}

function generic<T extends BasicObject> (options: T) {
    // something
}

function externalGeneric<T extends BasicObject>(a: Omit<T, 'name'>) {
    generic(a);
}

Playground.

你能解释一下,为什么Typescript忽略了a没有name字段,因此没有扩展BasicObject这个事实吗?

Typescript的版本是4.6.2.

推荐答案

因为您重新声明了global Object接口,请try 更改

interface Object extends BasicObject {
    code: string
}

interface SomeOtherNameThanObject extends BasicObject {
    code: string
}

Typescript相关问答推荐

如何通过TypeScript中的工厂函数将区分的联合映射到具体的类型(如类)?

如何按不能保证的功能过滤按键?

等待用户在Angular 函数中输入

为什么Typescript不能推断类型?

垫表页脚角v15

Angular:ngx-echart 5.2.2与Angular 9集成错误:NG 8002:无法绑定到选项,因为它不是div的已知属性'

如何从输入中删除值0

如何获取受类型脚本泛型约束的有效输入参数

为什么发送空字段?

S,为什么我的T扩展未定义的条件在属性的上下文中不起作用?

TypeScrip-如何自动推断UNION变量的类型

map 未显示控制台未显示任何错误@reaction-google-map/api

在类型脚本中创建显式不安全的私有类成员访问函数

将类型脚本函数返回类型提取到VSCode中的接口

基于泛型的类型脚本修改类型

使用泛型以自引用方式静态键入记录的键

TypeScript:如何使用泛型和子类型创建泛型默认函数?

Vite+Chrome扩展 list v3-;不能在模块外使用import语句;对于inpage脚本

TypeScript:方法获胜';t接受较窄类型作为参数

如何将参数传递给条件函数类型