我正在尝试用 TypeScript 开发一个流畅的 api,我想使用它,如下所示:
export interface Person {
firstName: string;
lastName: string;
}
new Builder<Person>()
.func1("stringArg1")
.func2("firstName")
.func3("stringArg2");
func2
可能只接受指定接口中实际出现的属性名称(此处:Person
)。
此外,func2
仅在返回值时可用func1
and func3
仅当返回值为func2
。在任何情况下都必须遵守函数调用的顺序。
班上Builder
必须能够随时评估指定值(stringArg1
, firstName
and stringArg2
).
我将非常感谢您的建议和帮助。
我不知道你到底想要实现什么,但这里有一个流畅的 API 示例
export interface Person {
firstName: string;
lastName: string;
}
class Builder<T> {
private func1Value?: string;
private func2Value?: keyof T;
private func3Value?: string;
func1(arg: string): this {
this.func1Value = arg;
return this;
}
func2(key: keyof T): this {
this.func2Value = key;
return this;
}
func3(arg: string): this {
this.func3Value = arg;
return this;
}
}
new Builder<Person>().func1('stringArg1').func2('firstName').func3('stringArg2');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)