我喜欢单个默认导出,并通过类定义访问常量值,如下所示:
MyClassDefinition.MyConstant
我发现自己使用这种方法:
export default class MyClassDefinition {
static get MyConstant(): number { return 1234 };
}
我有一个不那么冗长的方式来实现这一目标?
您可以使用readonly
静态属性代替 getter。也可以省略类型,因为 TypeScript 将从值推断它。
export default class MyClassDefinition {
static readonly MyConstant = 1234;
}
我还认为该类应该abstract
,因为它不应该被实例化,但当然这会让它再次变得更加冗长。
如果你只通过从其他文件导入来引用该类,你甚至可以完全摆脱它的名字:
export default class {
static readonly MyConstant = 1234;
}
一种更不冗长的方法是导出如下对象:
export default {
MyConstant: 1234
};
请注意,使用最后一种方法,TypeScript 不会阻止您将MyClassDefinition.MyConstant
重新分配给新值。与具有readonly
字段的基于类的解决方案不同。但是,您可以使用as const
将文本属性的类型转换为readonly
:
export default {
MyConstant: 1234
} as const;
as const
还将尽可能缩小这些属性的类型。因此,MyConstant
将是1234
类型而不是number
.但是,对于常量,这通常不是问题。