TypeScript Chrome扩展“重复的函数实现”,

58wvjzkj  于 2023-08-01  发布在  Go
关注(0)|答案(2)|浏览(117)

我目前正在使用typescript开发一个带有多个内容脚本的chrome扩展(我对js和ts都是新手)。在内容脚本中,我有两个同名的函数。我基本上需要知道如何“允许”:

//FileA:
function methodxyz(param: Element): void {

//FileB:
function methodxyz(param: Element): void {

字符串
我在其他文章中读到,要么把export { };放在文件的顶部,要么把export放在函数前面。但是当我使用扩展时,我得到一个错误,它说:Uncaught SyntaxError: Unexpected token 'export'或类似的东西。
我认为在typescript中有一个选项可以将所有文件合并到一个.js文件中,我认为这会导致错误被抛出,但由于我不想要该功能,我希望有人能帮助我:)

7qhs6swi

7qhs6swi1#

Typescript有用于此的命名空间。
从阅读评论,只是想说一些关于JS & TS。我认为关于JavaScript需要理解的一件重要的事情是,有很多不同的运行时(不同的浏览器版本,节点版本等),它们并不都支持语言规范的所有最新功能,这些功能在ECMAScript语言规范中定义。
因此,作为一名开发人员,为了能够使用语言的最新功能,同时不必担心与将要运行我的代码的每个运行时兼容,您可以将代码转换为旧版本以使其兼容。这带来的好处是,你可以用最新的,华丽的东西编程。
你可以看看https://babeljs.io/
一旦你做到了这一点,你就可以遵循更多的JS标准,而不是通过将代码编写为Modules来使用名称空间,这是JS和TS中原生支持的。Read about modules in TS.

v1l68za4

v1l68za42#

上面已经多次提到过,但是如果你能准确地知道一个文件是否有重复的变量或函数名,你就可以把整个代码 Package 在一个名称空间中。
下面是一个例子。(只需将代码 Package 在名称空间和花括号中即可。)

namespace foo {
  // your content script or anything
}

字符串
此外,在开发Chrome扩展程序时,如果某些代码可能具有重复的变量或函数名称,则可以通过使用相同的命名空间来帮助IDE

相关问题