首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缺少JSDoc @param "props.children“类型。而缺少JSDoc @param "props.children“类型。与本机FunctionalComponents反应

缺少JSDoc @param "props.children“类型。而缺少JSDoc @param "props.children“类型。与本机FunctionalComponents反应
EN

Stack Overflow用户
提问于 2020-09-06 21:04:13
回答 1查看 1.5K关注 0票数 2

我在一个react本机项目上使用JSDoc & TSDoc。

以下是文件:

代码语言:javascript
复制
import React, { createContext, useContext, FC } from 'react'
import useUserData, { UseUserDataType } from './useUserData'
import { AuthContext } from './FirebaseContextProvider'
import { AuthUser } from '../../common'

// Initial state

const initialUserDataContext = {
  userData: {},
} as UseUserDataType

// Create the context objects
export const UserDataContext = createContext<UseUserDataType>(initialUserDataContext)

/**
 * Context provider for user data from firebase
 *
 * @param props -
 * @param props.children - application parts that are dependent on user data.
 * @returns a context provider for user data
 */
const DataContextProvider: FC = ({ children }) => {
  const { user } = useContext(AuthContext)
  // UserData
  const userData = useUserData(user as AuthUser)

  return (
    <UserDataContext.Provider value={userData}>
          {children}
    </UserDataContext.Provider>
  )
}

export default DataContextProvider

我有两个警告:

在第二个@param上:

代码语言:javascript
复制
tsdoc-param-tag-with-invalid-name: The @param block should be followed by a valid parameter name: The identifier cannot non-word characterseslinttsdoc/syntax

关于JSDoc线的开始:

代码语言:javascript
复制
Missing JSDoc @param "props.children" type.eslintjsdoc/require-param-type

我不太明白我该如何记录这些道具。有什么见解吗?

谢谢

编辑:

如果我将类型添加为@param {Type},TSDoc会抱怨,因为它是TypeScript:

代码语言:javascript
复制
tsdoc-param-tag-with-invalid-type: The @param block should not include a JSDoc-style '{type}'eslinttsdoc/syntax

目前,我删除了规则,等待是否有一个更好的配置。

代码语言:javascript
复制
'jsdoc/require-returns-type': 'off',
'jsdoc/require-returns-type': 'off',
EN

回答 1

Stack Overflow用户

发布于 2022-11-30 13:02:37

这可能有点旧,但对于那些遇到类似问题的人来说。

Sheraff的评论是对的,所以我想扩展一下。

让我们首先看一下错误/s:

代码语言:javascript
复制
Missing JSDoc @param "props.children" type. 

因此,这意味着您缺少参数类型。

然后:

代码语言:javascript
复制
tsdoc-param-tag-with-invalid-name: The @param block should be followed by a valid parameter name: The identifier cannot non-word characterseslinttsdoc/syntax

这意味着:

代码语言:javascript
复制
* @param props.children - application parts that are dependent on user data.

应该是在param名称之后没有文本的:

代码语言:javascript
复制
* @param {Object} children

最后,以下是:

代码语言:javascript
复制
tsdoc-param-tag-with-invalid-type: The @param block should not include a JSDoc-style '{type}'eslinttsdoc/syntax

这意味着您添加了一个类型-- { type } --它不是已识别的类型。有效类型意味着字符串、Int、Object,这不是因为您使用TS。JSDoc需要他们的签名。

所以,为了解决这个问题,我相信下面的人会这么做:

代码语言:javascript
复制
/**
 * Context provider for user data from firebase
 *
 * @param {Object} children
 * @returns a context provider for user data
 */
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63768883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档