TypeScript中原始值是否可以直接作为类型使用?
TypeScript 字面量类型相关问题解答
原始值是否可以直接作为类型使用
可以。TypeScript 提供了字面量类型特性,支持直接把布尔、字符串、数字等原始类型的具体值作为类型使用,用来约束取值只能是该固定值。我们经常会把多个字面量类型组合成联合类型,用来限定字段的可选值范围,比如:
type OrderStatus = 'pending' | 'paid' | 'shipped' | 'refunded'
给出的类型定义是否合法
你提供的类型定义完全符合 TypeScript 语法规范,是合法的:
export type Status = { completed: false; }
该定义的含义是:所有属于Status类型的对象,必须包含completed属性,且该属性的取值只能是false,不能赋值为true或其他任意类型的值。
调整方案(仅当业务需求和当前定义不符时需要修改)
如果你的实际需求是让completed属性可以取任意布尔值,那么当前定义不符合业务要求,可以修改为:
export type Status = { completed: boolean; }
如果你需要同时支持多种状态组合,也可以基于字面量联合类型扩展实现可辨识联合,比如:
export type Status = | { completed: false, remainingTime: number } | { completed: true, finishTimestamp: number }
内容的提问来源于stack exchange,提问作者Jason M
相关产品推荐
相关产品推荐

