在 TypeScript 中,可以使用类型断言和类型守卫来限制文字表达式只接受可用的属性。
const obj: { name: string; age: number } = { name: "Alice", age: 20 };
// 使用尖括号语法进行类型断言
const nameLength1 = (obj as { name: string }).name.length;
// 使用as关键字进行类型断言
const nameLength2 = (obj as { name: string }).name.length;
function isString(value: unknown): value is string {
return typeof value === "string";
}
function printLength(value: unknown) {
if (isString(value)) {
console.log(value.length);
}
}
以上是限制文字表达式只接受可用属性的基本方法。对于更复杂的场景,可以结合使用泛型、条件类型等高级特性来实现更精确的类型约束。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云