gpt4 book ai didi

typescript : "Cannot use namespace as a type"

转载 作者:行者123 更新时间:2023-12-05 07:19:03 27 4
gpt4 key购买 nike

注意:我在 SO 上发现的所有其他问题都与 Angular 相关和/或具有与此完全不同的设置。


我有以下设置:

inner/action.ts:

export type MyAction = string;

inner/functions.ts

import { MyAction } from "./action";

const identity = (action: MyAction): string => action;

export {
identity
};

inner/index.ts

import * as MyAction from "./functions";

export { MyAction };
export * from "./action";

usage.ts

import { MyAction } from "./inner";

const action: MyAction = "";
// ^___ error is here

Error: Cannot use namespace 'MyAction' as a type

尽管 IntelliJ 提供了在代码中导航到该位置的功能。

为什么不允许在这两种情况下使用相同的名称,我该怎么做才能让它们都使用相同的名称?

最佳答案

这里的问题出在inner/index.ts
通过做:

import * as MyAction from "./functions";

export { MyAction };

您正在做的是导出一个名为 MyAction 的命名空间,其中包括 function.ts
的所有导出这意味着 inner/index.ts 导出的 MyAction 的值是

{
identity: (action)=>action
}

该值覆盖了 action.ts 导出的 MyAction 的值

export * from "./action";

相反你需要做的是

export * from "./functions";
export * from "./action";

这将导出 identityMyAction 而无需任何重命名或命名空间

关于 typescript : "Cannot use namespace as a type",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58043647/

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