要不要试着用TypeScript写GraphQL?

谁?
Who?

undefined

我最近开始接触GraphQL了。

undefined

GraphQL是什么?

    • Clientが欲しい値だけを問い合わせるための仕組み

 

    • 階層的にデータを要求できる

 

    厳密な型定義(schema)がある

你可能会喜欢尝试一下 https://www.graphqlhub.com/playground 。


由于我对Angular比React更熟悉,所以我喜欢用Angular2强制运行Relay,这是我的兴趣爱好。

以下是一个用中文本地化的例子:https://quramy.github.io/angular2-graphql-note/


你有实现过GraphQL的服务器端吗?


var schema = new graphql.GraphQLSchema({
  query: new graphql.GraphQLObjectType({
    name: 'Query',
    fields: {
      user: {
        type: userType,
        args: {
          id: { type: graphql.GraphQLString }
        },
        resolve: function (_, args) {
          return data[args.id];
        }
      }
    }
  })
});

每次都会出现type之类的东西

  id: { type: graphql.GraphQLString }, // ← これ

麻煩


我们使用静态类型语言

流も好きだけど、TypeScriptもね! (Liu2 ye3 hao3 xi1, dan4 TypeScript ye3 ne!)


可以给Class加上装饰器,然后生成Schema吗?


import { Schema, Query, ObjectType, Field, schemaFactory } from "graphql-decorator";

@ObjectType() class QueryType {
    @Field() greeting(): string {
        return "Hello, world!";
    }
}
@Schema() class SchemaType {
    @Query() query: QueryType;
}

const schema = schemaFactory(SchemaType);

怎么样? ?)

在TypeScript中,可以通过emitDecoratorMetadata将类型信息传递给Reflect。

我們使用這個來將類型信息轉換成 GraphQL 的 ObjectType。


请提供以下内容的中文翻译,只需要一种选择:
https://github.com/Quramy/graphql-decorator

请提供以下地址的中文翻译:
https://github.com/Quramy/graphql-decorator


用中文表达以下的意思,只需要一种选择:

所感

    • 結局Decoratorだらけで楽なんだか大変なんだか分からん

 

    • JAX-WSとかJAX-Bっぽい。

 

    気が乗ればflow対応するかも。flow typeからmetadataにemitするいい感じのbabel-plugin募集中
广告
将在 10 秒后关闭
bannerAds