我有一个 typescript 文件,看起来像这样:
export namespace MyNamespace {
export const myFunc = (a:number) => 3;
}
当我编译它时(在我的例子中,我使用的是storybook),我得到了这个错误:
Namespace not marked type-only declare. Non-declarative namespaces are only supported experimentally in Babel
. To enable and review caveats see: https://babeljs.io/docs/en/babel-plugin-transform-typescript
据我所知,这是一个试图编译TS的错误。
这个错误“Namespace not marked type-only declare”令人费解,因为它看起来不是正确的英语。这里应该有一个逗号吗?
我应该声明一些东西吗?什么是类型唯一的命名空间?
1条答案
按热度按时间oug3syen1#
declare
是Typescript中的一个关键字,“type-only”指的是它的行为。当你把关键字declare
添加到namespace
中时,它可能只包含类型。所以,这个错误表明Babel不支持namespace
(当被问到这个问题时,默认情况下),除非你使用这个关键字,并且你只能在你只使用类型时使用这个关键字。对于您的示例,它包含的不仅仅是类型,所以您需要更新到enables
namespace
默认支持的Babel的最新版本(〉=v7.13.0
),或者按照错误中的链接将配置选项更改为allowNamespaces: true
,https://babeljs.io/docs/en/babel-plugin-transform-typescript。