Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

docs/api.md documents props as `PropTypes`, and several entries are wrong

未关闭
#419 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
55/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
react, typescript

调研方向

从 docs/api.md 开始,将其中的四个 prop 表与 TypeScript 声明以及 LiveProvider 的 transformCode 调用位置进行核对。更新文档中的类型和默认值,修正 transformCode 的返回类型,并考虑 LiveEditor 的 Partial 接口面。已发布声明的变更需要一个 changeset。

由索引模型根据 Issue 内容生成。

描述

docs/api.md types every prop as PropTypes.string, PropTypes.bool, and so on — 16 rows
across four tables. There is no prop-types dependency in the repo. The props are
TypeScript, so the notation describes runtime validation that does not happen.

The file is already inconsistent with itself: the withLive() table types element as
React.Element, which is not a real type either (React.ReactElement).

Auditing the tables to convert them turned up three entries that are wrong on the facts, not
just the notation.

language default is documented as jsx
| language | `PropTypes.string` | ... (Default: `jsx`) |

LiveProvider defaults it to tsx:

language = "tsx",
LivePreview's Component is not a node

Documented as PropTypes.node. It is React.ElementType — a tag name or component, not
rendered output. node would be the wrong choice even in PropTypes terms (elementType).

transformCode's declared type contradicts its own call site

The docs say "accepts and returns the code to be transpiled", which matches what
LiveProvider actually does:

const transformResult = transformCode ? transformCode(newCode) : newCode;
const transformedCode = await Promise.resolve(transformResult);
if (typeof transformedCode !== "string") {
  throw new Error("Code failed to transform");
}

The type says the return value is discarded:

transformCode?(code: string): void;

Here the docs are right and the source is wrong. TypeScript permits returning a value where
void is expected, so callers are not broken — but anyone reading the declarations sees a
mutator. Should be string | Promise<string>.

Order
  1. Fix transformCode's return type. Separate from the docs work: it ships in the published
    declarations and needs a changeset.
  2. Convert the four tables to TypeScript types, correcting language, Component, and
    element along the way.
  3. While in there, LiveEditor takes Partial<EditorProps>, so the three documented props
    are not its whole surface.
主要语言
TypeScript
星标
4.6k
派生
260
平均合并
6 天 18 小时
30 天内合并 PR
1

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

FormidableLabs/react-live 的其他 Issue

查看 FormidableLabs/react-live 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。