TypeScript class A 的方法作为 B 方法的传递
TypeScript class A's method to work as a pass-through to a B's method
我正在尝试将第三方库 auth0-js 包装到我自己的 class 中。在下面的示例中,来自 Auth0.js 的 Authentication
class 被包装并用作传递方法的实现。看看 buildLogoutUrl(options)
只是在包装对象上调用一个函数。
有没有更简洁的方法"redirect" Authentication 的 buildLogoutUrl(...) 到 wa
的 buildLogoutUrl(...) 继承?
import * as a0 from "auth0-js";
export class Authentication {
constructor(private wa: a0.Authentication) { }
buildLogoutUrl(options?: a0.LogoutOptions | undefined): string {
return this.wa.buildLogoutUrl(options);
}
// Many other methods...
}
以牺牲灵活性为代价,您可以通过使用赋值来节省一点打字时间:
import * as a0 from "auth0-js";
export class Authentication {
constructor(private wa: a0.Authentication) { }
buildLogoutUrl = this.wa.buildLogoutUrl;
}
例如,"flexibility" 的意思是您不能更改函数签名或对参数执行任何预处理。此外,您的 class 不再具有您控制的固定 public 接口(假设库的作者更改了函数签名)。
我正在尝试将第三方库 auth0-js 包装到我自己的 class 中。在下面的示例中,来自 Auth0.js 的 Authentication
class 被包装并用作传递方法的实现。看看 buildLogoutUrl(options)
只是在包装对象上调用一个函数。
有没有更简洁的方法"redirect" Authentication 的 buildLogoutUrl(...) 到 wa
的 buildLogoutUrl(...) 继承?
import * as a0 from "auth0-js";
export class Authentication {
constructor(private wa: a0.Authentication) { }
buildLogoutUrl(options?: a0.LogoutOptions | undefined): string {
return this.wa.buildLogoutUrl(options);
}
// Many other methods...
}
以牺牲灵活性为代价,您可以通过使用赋值来节省一点打字时间:
import * as a0 from "auth0-js";
export class Authentication {
constructor(private wa: a0.Authentication) { }
buildLogoutUrl = this.wa.buildLogoutUrl;
}
例如,"flexibility" 的意思是您不能更改函数签名或对参数执行任何预处理。此外,您的 class 不再具有您控制的固定 public 接口(假设库的作者更改了函数签名)。