代码之家  ›  专栏  ›  技术社区  ›  Jimmy

基于对象的typescript中的特定字符串值

  •  0
  • Jimmy  · 技术社区  · 7 年前

    如何在typescript中要求参数是特定的字符串值?

    例如:

    const obj = {
      a: 1,
      b: 2,
      c: 3,
    };
    
    interface Props {
      x: Object.keys(obj); // instead of 'a' | 'b' | 'c'
    }
    
    const foo = (x: Props) => console.log(x);
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   skovy    7 年前

    你可以使用 typeof 运算符首先获取 obj 然后 keyof 获取对象键的运算符( "a" | "b" | "c" )

    const obj = {
      a: 1,
      b: 2,
      c: 3
    };
    
    interface Props {
      x: keyof typeof obj;
    }
    
    const foo = (x: Props) => console.log(x);
    

    TypeScript Playground

    推荐文章