def typescriptType()

in scrooge-generator-typescript/src/main/scala/com/gu/scrooge/backend/typescript/TypescriptGenerator.scala [80:101]


  def typescriptType(t: FunctionType): String = t match {
    case Void => "void"
    case OnewayVoid => "void"
    case TBool => "boolean"
    case TByte => "number"
    case TI16 => "number"
    case TI32 => "number"
    case TI64 => "Int64"
    case TDouble => "number"
    case TString => "string"
    case TBinary => "Buffer"
    case n: NamedType => n.sid.toTitleCase.name
    case MapType(k @ (TI16 | TI32 | TString | EnumType(_, _)), v, _) => {
      s"{[key: ${typescriptType(k)}]: ${typescriptType(v)}}"
    }
    case MapType(k, v, _) => throw new ScroogeInternalException(s"Typescript maps can only have a string or a number as the key, found map<$k, $v>")
    case SetType(x, _) => s"${typescriptType(x)}[]"
    case ListType(x, _) => s"${typescriptType(x)}[]"
    case r: ReferenceType =>
      throw new ScroogeInternalException("ReferenceType should not appear in backend")
    case _ => throw new ScroogeInternalException("unknown type")
  }