gpt4 book ai didi

typescript - 导出的变量 X 具有或正在使用来自外部模块 Z 的名称 Y,但无法命名

转载 作者:行者123 更新时间:2023-12-03 13:32:41 39 4
gpt4 key购买 nike

在这种情况下,我使用带有 { compilerOptions: {declaration: true }} 的 TS 3.9 得到以下错误在我的 tsconfig.json 中:

// a.ts
export const key = 1234
export const obj = {
[key]: 1
};
export default obj;

// b.ts
import A from "./a";
import { key} from "./a"

// Exported variable 'theExport' has or is using name 'key' from external module "c:/tsexample/src/a" but cannot be named.ts(4023)
const theExport = {
A: A,
B: 2,
C: 3,
};
export default theExport
// Exported variable 'theExport' has or is using name 'key' from external module "c:/tsexample/src/a" but cannot be named.ts(4023)
a comment on a related issue当时 TS 的 PM 提出了两种解决方法:
  • 显式导入类型
  • 显式声明导出的类型(发生错误的地方)

  • (1) 在这种情况下不起作用。我尝试从“a”导出所有内容并在“b”中导入所有内容,但错误消息没有任何区别。
    唯一有效的是这个非常冗长且难以维护的显式类型注释:
    // updated b.ts
    import A from "./a";

    const theExport: {
    // https://github.com/microsoft/TypeScript/issues/9944
    [index: string]: typeof A | number;
    } = {
    A: A,
    B: 2,
    C: 3,
    };
    export default theExport;
    我的问题是:
  • 什么是我可以使用的不涉及重复对象形状的解决方法?
  • 为什么导入类型不能解决问题?

  • 这个问题与以下类似但不同:
  • https://stackoverflow.com/a/44066867/2482570 : 不相关,因为它说问题已在 TS 2.9
  • 中修复
  • https://stackoverflow.com/a/49841010/2482570 :没有一个答案提供适用于这种情况的解决方法
  • Typescript error: "Return type of exported function has or is using name <n> from external module <M> but cannot be named"Typing error "Default export of the module has or is using private name" - switch from typescript v1.8 to 2 : 在这种情况下,所提供的解决方案都不起作用
  • 最佳答案

    它不是那么漂亮,但这是一个微创更改,似乎可以在沙箱中工作:

    const theExport = {
    A: A as {[K in keyof typeof A]: typeof A[K]},
    B: 2,
    C: 3
    };

    关于typescript - 导出的变量 X 具有或正在使用来自外部模块 Z 的名称 Y,但无法命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62538330/

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