我正在编写通用方法,以便在不同的前端应用程序中使用它们,其想法是能够调用该函数.postAsync<CustomModel>('www.mysite.com',..., CustomModel);,并且预期的响应是一个 CustomModel 对象。
我希望能够为第二个参数设置默认值,以便默认情况下该值将是不同的模型,并且可以在需要时覆盖。
如何为Constructable<T>接口 Constructable 意味着类型的参数设置默认值
interface Constructable<T> { new(params : any): T ;}
Run Code Online (Sandbox Code Playgroud)
我尝试设置一个带有参数的接口的默认值并将参数设置为不同的类型,但我总是收到错误Type Constructable<CustomModel> is not assignable to type Constructable<T>。我还在 CustomModel 通用方法中设置了 T 的默认类型,然后尝试了此操作并得到相同的错误。
interface Constructable<T> { new(params : any): T ;}
export default class WebapiBase {
static async postAsync<T = CustomModel>(
uri: string,
body: object,
headers: CustomHeaders = new CustomHeaders(),
// This is the part giving errors
model: Constructable<T> = <Constructable<CustomModel>>,): Promise<T> {
return this.requestAsync<T>(model, HTTP_METHOD.POST, uri, headers, body); …Run Code Online (Sandbox Code Playgroud)