我在基类/不同文件中创建类似于ENUM的东西:
ExamStatusId = {
All: {
elem: this.examStatusSelectId, // << refers to a string
text: 'Exam Status: All',
val: 0
},
Current: {
elem: this.examStatusSelectId, // << refers to a string
text: 'Exam Status: Current',
val: 1
}
}
Run Code Online (Sandbox Code Playgroud)
一旦定义了这个,我在另一个类/文件中调用这样的函数:
page.isSelectedValue(page.ExamStatusId.All);
Run Code Online (Sandbox Code Playgroud)
这是另一个类/文件中的函数:
isSelectedValue (data) {
var title = this.getTitle(data.id);
var valueString = data.val.toString();
it('Check for ' + data.text, function () {
expect(data.elem.getAttribute("value")).toBe(valueString);
});
}
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但有人可以告诉我这是否是一种更好的方式让我isSelectedValue使用Typescript 将所需的数据传递给函数?我已经使用Typescript作为代码,并希望充分利用它提供的所有功能.
另外,我如何确保传递给该函数的函数包含elem,text和val的所有参数?
Typescript具有内置的枚举语法:
enum EnumName {
member1,
member2,
member3
}
Run Code Online (Sandbox Code Playgroud)
然后EnumName成为命名类型,因此您可以拥有一个函数:
((foo: EnumName) => { })(EnumName.member1);
Run Code Online (Sandbox Code Playgroud)
为了满足您的特定要求,您可以做以下事情:
enum Status {
All,
Current
}
ExamStatusID = {
elem: this.examStatusSelectId
val: (status: Status) => {
switch(status) {
case Status.All: //etc
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |