首页 > 解决方案 > TypeScipt 属性依赖于布尔值?

问题描述

打字稿中有没有一种方法可以使接口依赖于该接口中某些东西的值?我想要做的是我有一个可以选择关闭的盒子,而且无论我们是否存储该动作以使其持久化,它也是可选的,所以我有一个这样的界面:

interface ButtonProps = { closable: boolean, closableKey?: string }

如果 closable 为 false,我不希望人们能够设置 closableKey,反之亦然。TypeScript 可以做到这一点吗?

标签: typescriptinterface

解决方案


您可以使用联合类型

type ButtonProps = {
    closeable?: false;
} | {
    closeable: true;
    closeableKey: string;
};

这将导致以下示例显示(非)错误:

例子


推荐阅读