如何创建具有文字类型的只读对象而不重复该值。
明确输入' myLiteralValue' 的工作示例:
const createSettings = () => ({ appType: 'myLiteralValue' as 'myLiteralValue' });
switch (createSettings().appType) {
case 'myLiteralValue':
break;
}
如果我没有明确输入字符串,那么该类型会扩展为字符串如果我删除了重复的' myLiteralValue'
const createSettings = () => ({ appType: 'myLiteralValue' });
switch (createSettings().appType) {
case 'myLiteralValue':
break;
}
虽然将 appType 分解为const但仍然以不同的方式重复:
const myLiteralValue = 'myLiteralValue';
const createSettings = () => ({ appType: myLiteralValue });
switch (createSettings().appType) {
case 'myLiteralValue':
break;
}
答案 0 :(得分:1)
您可以使用readonly
修饰符来声明常量属性(在本例中为文字属性)。
class Settings {
constructor(public id: any) { }
readonly appType: "myLiteralValue";
}
const createSettings = (id: any) => new Settings(id);