在typescript中,我可以拥有一个由类构造函数确定的枚举类型的类成员,它指示其他成员类型吗? 背景故事(你可以跳过)
我来自Qt/C++,对typescript和javascript仍然非常陌生。我在Qt/C++中遵循的编程理念可以总结为,在typescript中,我可以拥有一个由类构造函数确定的枚举类型的类成员,它指示其他成员类型吗? 背景故事(你可以跳过),typescript,class,generics,enums,type-safety,Typescript,Class,Generics,Enums,Type Safety,我来自Qt/C++,对typescript和javascript仍然非常陌生。我在Qt/C++中遵循的编程理念可以总结为,将所有东西都编码为API,我正在尝试学习如何在typescript中应用这一点。我不太确定这是否是我需要使用泛型的东西,所以我将详细讨论。如果这是C++,我可能会用模板来做这个。 无论如何,我想创建一个类,作为构建internet民意调查的基础。 基本上这个想法是, 创建一个Poll类的对象let question1=new Poll(水果,“Fav Desert?”) 构造
将所有东西都编码为API
,我正在尝试学习如何在typescript中应用这一点。我不太确定这是否是我需要使用泛型的东西,所以我将详细讨论。如果这是C++,我可能会用模板来做这个。
无论如何,我想创建一个类,作为构建internet民意调查的基础。
基本上这个想法是,
let question1=new Poll(水果,“Fav Desert?”)代码>
枚举蔬菜
//我愚蠢的互联网民意调查决定了你是哪种水果
让问题1=新的民意测验(水果,“最喜欢的甜点?”);
问题1.添加选项(“香蕉分割”,水果、香蕉);
问题1.添加选项(“苹果派”,水果,苹果);
问题1.添加选项(“橙色蛋糕”,水果,橙色);
让问题2=新的民意测验(水果,“最喜欢的颜色?”);
问题2.添加选项(“黄色”、水果、香蕉);
问题2.添加选项(“红色”、水果、苹果);
问题2.添加选项(“橙色”,水果,橙色);
类轮询
{
构造函数(T:enum)//T表示枚举类型
{
this.m_T=T;//伪代码。设置内部使用的枚举类型
}
私有类型m_T:enum;//伪代码,enum类型
私有m_选项:m_T[];//伪代码,枚举类型的类型安全数组
私有m_选项text:string[];//与m_选项对应
addOption(optionText:string,option:m\u T):void
{
此.m_Options.push(选项);
此.m_optionText.push(optionText);
}
}
罗汉果{
苹果=0,
橙色
香蕉,
}
枚举蔬菜{
胡萝卜=0,
西兰花,
生菜,
}
让问题1=新的民意测验(水果,“最喜欢的甜点?”);
//类型安全
问题1.添加选项(“香蕉分割”,水果。香蕉);//应该有用
//不是类型安全的,因为问题1不是用蔬菜枚举构造的
问题1.添加选项(“胡萝卜蛋糕”,蔬菜,胡萝卜);//不应该起作用
谢谢。泛型是否希望
类轮询
有效?然后用newpoll(“最喜欢的甜点”)
@K48 yes;这很有效。有趣的是,这样一个详细的问题被总结为“只使用泛型”。泛型像class Poll
那样有效吗?然后用newpoll(“最喜欢的甜点”)
@K48 yes;这很有效。有趣的是,这样一个详细的问题被总结为“只需使用一个泛型”。