在Typescript中使用泛型和类型推断

时间:2020-02-26 14:31:36

标签: typescript generics

在C#中,我具有以下通用定义。

public interface IMediator{
        TResult ExecuteQuery<TResult>(Query<TResult> query);
    }
public abstract class Query<TResult> { }

然后使用它看起来像这样“容易”。

public class MyQuery<MyResult> {
  public string SomeValue
}

//later in code
var res = mediator.ExecuteQuery(new MyQuery {SomeValue="Test"});

//The type of res will now be MyResult, infered from the Query

这可以在TypeScript中完成吗? 我试图“复制”解决方案,但是类型推断无法正常工作。

export interface IQuery<T> {}
export async function QueryServer<T>(query:IQuery<T>) : Promise<T> {
  return await fetch(.......).Json();
}

class TestQuery implements IQuery<string[]> {
    something: string;

    constructor(something: string) {
        this.something = something
    }
}

var res = await QueryServer(new TestQuery("BLABLA"));

res的类型现在在开发时为unknown

0 个答案:

没有答案