【发布时间】:2021-12-22 00:26:39
【问题描述】:
举个例子:
interface Foo {
name: string;
}
interface Bar extends Foo {
displayName: string;
}
const foo: Foo = { name: "foo" };
const bar: Bar = { name: "bar", displayName: "dn" };
const getName = <T extends Foo>(obj: T = foo): string => {
return obj.name;
};
getName(foo); // Ok
getName(bar); // Ok
obj: T = foo 导致错误。即使T extends Foo,这是不被接受的。为什么会这样?有什么解决方法?
【问题讨论】:
标签: typescript typescript-generics type-constraints