TS1183:无法在 Typescript 的环境上下文中声明实现

lan*_*ilz 2 typescript

我试图创建一个全局名称空间/函数,我的代码如下所示:abc.ts

declare namespace abc {
   export function abc (): xyz {
        console.log('Hello');
        return xyz(200);
    }
}
export = abc
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我如何解决它 ?

Dim*_*msa 5

如果删除“declare”关键字,您的代码将正常工作

namespace abc {
   export function abc (): xyz {
        console.log('Hello');
        return xyz(200);
    }
}
export default abc
Run Code Online (Sandbox Code Playgroud)

声明用于告诉 TypeScript 该变量已在其他地方创建。如果您使用声明,则不会向生成的 JavaScript 添加任何内容 - 它只是对编译器的提示。

“导出声明类操作”中的“声明”有什么作用?


实施可以在您的情况的另一个地方。下面的代码也可以正常工作。

declare namespace abc {
   export function abc ();
}

namespace abc {
   function abc (): xyz {
        console.log('Hello');
        return xyz(200);
    }
}

export default abc
Run Code Online (Sandbox Code Playgroud)

https://www.typescriptlang.org/docs/handbook/declaration-files/by-example.html