gpt4 book ai didi

typescript - 如何在用 TypeScript (TSX) 编写的 React 应用程序中使用 Facebook Relay?

转载 作者:搜寻专家 更新时间:2023-10-30 20:59:19 25 4
gpt4 key购买 nike

我想在 React 中编写一个新的 Web 应用程序使用 RelayGraphQL 沟通服务器。最近JSX supportTypeScript 引入.但是 DefinitelyTyped 上的中继没有类型声明文件 (.d.ts) .如何使用 TypeScript 编写我的应用程序而无需先为 Relay 编写类型文件?

最佳答案

Typescript 不要求您对所使用的所有库进行打字,强烈建议您使用它。无需输入即可使用 Relay:

import * as React from "react"
let Relay = require("react-relay")

interface HelloProps extends React.Props<HelloComponent> {
viewer: {
message: string
}
}

class HelloComponent extends React.Component<HelloProps,void> {
render() {
return <div>Hello { this.props.viewer.message }</div>
}
}

let Hello = Relay.createContainer(HelloComponent, {
fragments: {
viewer: () => Relay.QL`fragment on Viewer { message }`
}
})

然后将 Hello 用作常规 Relay 组件。这个想法是 require 是一个接受字符串并返回 any 的函数,因此您可以像在 vanilla Javascript 中那样使用 Relay 变量。

如果您不使用 Node.JS 类型,您可能需要为 require 添加类型。在你的 d.ts 文件的某处,添加:

interface NodeRequireFunction {
(id: string): any;
}

declare var require: NodeRequireFunction;

关于typescript - 如何在用 TypeScript (TSX) 编写的 React 应用程序中使用 Facebook Relay?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34140567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com