在typescript中的接口中精确指定多个类型的值:

用户名

这是我的代码(在打字稿2.3.4中):

type TokenType =  "operator" | "doubleQuote" | "identifier" | "(end)";



interface Token {
    type: TokenType;
    value: string;
    pos: number;
}

interface PosTokenOp {
    type: "operator" | TokenType ;
    value: string;
    pos: number;
    left: Token | null;
    right: Token | null;
}

所以我希望PostTokenOp类型是:

interface PosTokenOp {
    type: "operator" ;
    value: string;
    pos: number;
    left: Token | null;
    right: Token | null;
}

但是,如果我只输入“ operator”,它不会意识到它是TokenType的一部分,并且我的代码中有错误。

因此,我想使PostTokenOp的类型等于“ operator”,并确切地说该operator是TokenType的值之一。

如果有人对此有任何想法。

感谢致敬

穆拉特·卡拉戈斯(Murat Karagoz)

如果可以升级到Typescript 2.4,则可以使用String Enums

例如

enum TokenType{"operator", "doubleQuote", "identifier", "(end)"}

interface Token {
    type: TokenType;
    value: string;
    pos: number;
}

interface PosTokenOp {
    type: TokenType.operator ;
    value: string;
    pos: number;
    left: Token | null;
    right: Token | null;
}

在2.4之前,您可以使用常规枚举,例如

enum TokenType { operator, doubleQuote ,identifier , end}

interface Token {
    type: TokenType;
    value: string;
    pos: number;
}

interface PosTokenOp {
    type: TokenType.operator;
}

然后用法是这样的

 test:PosTokenOp = {
       type: TokenType.operator
    }
 console.log(TokenType[this.test.type]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

打字稿:为接口中的键指定多个可能的值

类像 Typescript 接口中的类型

值作为接口中的类型

如何仅收集类型中的键,该类型的对象具有某些特定键作为 Typescript 接口中的值?

TypeScript为接口中的特定键及其类型的匹配值添加了类型支持

如何在TypeScript接口中指定包含多个对象的数组?

typescript:获取接口中基本类的类型

TypeScript 接口中的自引用键类型

TypeScript 中的接口与类型

在Typescript中,如何在接口中使用字符串文字类型?

接口将键值限制为const Typescript的精确值

Typescript:将函数作为接口中的类型传递

如何在 Typescript 函数接口中约束泛型类型?

如何防止在TypeScript类型和接口中使用“ any”

Typescript:接口中的常量

TypeScript中数组类型的接口

为什么可以在TypeScript中将接口中可能的数字值转换为类实现中的不可能的数字值?

在Typescript中的对象文字中指定值的类型?

TypeScript:生成枚举值的类型或接口

寻找多个精确值

从静态字符串字典中,使用字符串文字作为值类型,推断出精确描述字典的类型/接口

在Typescript中的类型中扩展接口

混合接口中的类型检查

接口中的动态返回类型

接口中的 {} 类型是什么?

如何在接口方法中为返回值指定相同的类类型?

接口中的TypeScript可选功能

接口中的Typescript静态方法

如何从接口中定义的数组中引用数组值?