我正在编写一个 Graphql API 并在打字稿中定义类型。 我希望在描述 API 输入时强制执行这些类型。
我想知道我是否可以做这样的事情:
enum ActionType {
CREATE = 'create',
DELETE = 'delete',
}
interface BaseAction {
actionType: ActionType;
};
type DeleteAction = BaseAction & {
actionType: ActionType.DELETE;
id: string;
};
type CreateAction = BaseAction & {
actionType: ActionType.CREATE
data: string;
secArg: number;
};
我有一个接口 BaseAction 和其他类型在指定相关操作类型的同时继承/实现它。
这是最好的做法吗?或者有另一种方法来实现这样的定义?
提前致谢。
答案 0 :(得分:1)
我认为 this 是您正在寻找的(您正在做的也应该有效)。您还可以从 exhaustive checking 使用类似这样的模式简化函数中受益。
答案 1 :(得分:0)
如果您想在创建 material.mainTexture
实例时自动检测操作类型,您可以将类型更改为类并实现 DeleteAction
接口。像这样:
BaseAction