静态成员不能引用类类型参数



我有一个泛型类,我想使用这个泛型参数:

export class OperationResult<TResult>
{
public success: boolean;
public message: string;
public result: TResult;
constructor(success: boolean, message: string, result: TResult) {
this.success = success;
this.message = message;
this.result = result;
}
public static BuildSuccessResult(message: string, result: TResult): OperationResult<TResult> {
return new OperationResult<TResult>(true, message, result);
}
}

但是它显示了BuildSuccessResult函数的错误:

静态成员不能引用类类型参数。ts

如何在静态函数上返回泛型值?

静态方法也应该像这样接受泛型:

参见TS playground: https://tsplay.dev/rw2ljm

public static BuildSuccessResult<TResult>(message: string, result: TResult): OperationResult<TResult> {
return new OperationResult<TResult>(true, message, result);
}

由于静态方法可以在没有类实例的情况下调用,因此该方法必须是泛型的。如果方法不是静态的,您将需要<TResult>部分,因为在这种情况下,TResult可以从实例中推断出来。

关于TypeScript repo有一个很长的讨论。

相关内容

  • 没有找到相关文章

最新更新