我有两个接口声明:
interface IStore { }
interface SomethingElse { a: number;}
以下是实现了 each 方法的 2 个类:
class AppStoreImplemetion implements IStore
{ }
class SomethingImplementation implements SomethingElse
{
a: 4;
}
我希望能够将我的方法的返回类型限制为“必须是
IStore
”,因此我这样做了:class Foo {
selectSync<T extends IStore>( ): T
{
return <T>{/* omitted*/ }; // I set the return type(`T`) when invoking
}
}
好的
测试:
这个按预期工作:
new Foo().selectSync<AppStoreImplemetion>();
但这个也可以工作 - 不是像预期的那样:
new Foo().selectSync<SomethingImplementation>();
问题:
如何强制我的方法接受一个必须实现 IStore
接口的返回类型?