导入模块时找不到 ts 文件中的函数

埃姆雷

我尝试开发 VSTS(Azure Devops)扩展,但不理解以下行为。

我有一个带有按钮元素和 onclick 侦听器的 html 页面,例如:

<!DOCTYPE html>

<head>
    <script type="text/javascript">

        VSS.init({
            usePlatformScripts: true,
            moduleLoaderConfig: {
                paths: { "scripts": "scripts" }
            }
        });

        VSS.ready(function () { require(["scripts/btn-controller"], function () { }); });

    </script>
</head>

<body>
    <button class="active" onclick="btnEvent(event, 'Action')">Button</button>
    <input type="text" id="text">
</body>

</html>

btn-controller.ts 文件:

function btnEvent(evt, NavTabButton) {
   document.getElementById("text").innerHTML = "works"
}

这工作正常,但是当我将模块导入 ts 文件时,出现找不到函数“btnEvent”的错误。

import Extension_Data = require("VSS/SDK/Services/ExtensionData");

function btnEvent(evt, NavTabButton) {
    document.getElementById("text").innerHTML = "should work"
}

我试图找出这种行为的原因,但经过 2 小时的研究,我找不到可行的解决方案。

雅库布·雅努什凯维奇

如果没有 import 语句,ts 文件的内容将被视为在全局范围内可用。添加导入时,文件开始被视为模块,因此您必须导出函数以使其在文件外部可见。只需export在您的函数之前添加关键字。

参考:模块 - TypeScript

在 TypeScript 中,就像在 ECMAScript 2015 中一样,任何包含顶级导入或导出的文件都被视为一个模块。相反,没有任何顶级导入或导出声明的文件被视为脚本,其内容在全局范围内可用(因此也对模块可用)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TS2307:在TypeScript上导入Angular2时找不到模块“ angular2 / core”

tsc抛出“ TS2307:找不到本地文件的模块”

找不到模块“ ts-node / register”

导入CSS文件时的流程“找不到所需的模块”

Android Studio中的导入模块找不到导入的类

使用Webpack时找不到导入模块的字体文件

TS找不到模块

添加test.ts文件时找不到名称“ XLSX”

TS2307:找不到模块“表达”

导入.jsx文件时找不到模块

在component.ts中找不到名称“ $”

./server.ts中的错误找不到模块:错误:无法解析..... @。/ server.ts中的'./dist/server/main.bundle'@。/ server.ts 16:9-45

错误TS2307:在moment-date-adapter.d.ts中找不到模块“ moment”

d.ts文件找不到模块“ rxjs / Observable”

WebStorm:在某些.ts文件中找不到名称“ await”

TS7016:找不到模块“ faker / locale / en_CA”的声明文件

'以角度导入admin.service.ts文件时找不到模块'./admin.service'吗?

TS7016:找不到模块“ vue-timers”的声明文件

NRWL NX导入库错误TS2307:找不到模块'@ eduboard / interfaces'

找不到模块'@ capacitor / core'.ts(2307)

在React中找不到模块TS2307

导入svg文件时,打字稿找不到模块

在Create React App中导入.csv文件时出现“找不到模块”

TS2307:找不到模块“角度”

TS2307:找不到模块(所有模块)- 移动文件夹后

尝试导入熊猫时在 Python 中找不到模块错误

在 TypeScript 中导入远程 JSON 文件时出现“找不到模块”错误

从其他项目文件导入类时,Monorepo 避免(找不到模块“lib”)

模块为 CommonJS 时 ts-node 中的“SyntaxError:无法在模块外使用导入语句”错误