WordPress 区块开发 TypeScript - useSelect 类型错误

问题描述 投票:0回答:1

我正在尝试将

useSelect
与 TypeScript 一起使用来获取当前的帖子类型。在常规 JavaScript 中,此代码运行良好(实际上是古腾堡主存储库中使用的代码):

const postType = useSelect(
    ( select ) => select( 'core/editor' ).getCurrentPostType(),
    []
);

但是,当我转换为 TypeScript 时,这会引发类型错误:

Property 'getCurrentPostType' does not exist on type 'never'.ts(2339)

我看不出是什么原因造成的,为什么返回类型是

<never>

代码实际上可以正常工作并且编译得很好,但我希望它类型安全。任何有关如何解决此问题的想法将不胜感激。

typescript wordpress wordpress-gutenberg
1个回答
0
投票

您可以从

store
导入
"@wordpress/editor"
并使用它来代替商店名称。

import {useSelect} from "@wordpress/data"
import {store as CoreEditorStore} from "@wordpress/editor"

/* ... */

const postType = useSelect(
    (select) => select(CoreEditorStore).getCurrentPostType(),
    [],
)

/* ... */

来自来源

/*
 * (...)
 * @param storeNameOrDescriptor The store descriptor. The legacy calling convention
 *                              of passing the store name is also supported.
 * (...)
 */
© www.soinside.com 2019 - 2024. All rights reserved.