【问题标题】:Visual Studio 2017, Cannot find name 'Office' when compiling typescriptVisual Studio 2017,编译打字稿时找不到名称“Office”
【发布时间】:2018-01-09 20:40:53
【问题描述】:

我正在将 Word 的 VSTO 外接程序转换为新的 Office 外接程序格式。我已经安装了最新版本的 Visual Studio 2017 Community。我试图在我的代码中使用打字稿,但我无法获得对 Office.js 的任何引用来编译。它返回错误“TS2304 TypeScript (TS) 找不到名称‘Office’”。

作为测试,我从提供的模板中创建了一个全新的 WordWebAddin。然后,我在名为 file1.ts 的 Functions 文件夹下创建了一个新的打字稿文件。该文件包含以下代码:

(function () {
    Office.initialize = function (reason) {

    };
})();

我怀疑我遗漏了一些简单的东西。我进行了广泛的搜索,但似乎找不到我需要的解决方案,因为很多搜索结果都是针对 Visual Studio 2015 的,而且有很多已经改变。

【问题讨论】:

    标签: typescript visual-studio-2017 office-js


    【解决方案1】:

    @JAllen,对延迟回复表示歉意。我们更新了文档以提供使用 Visual Studio 2017 的指导:Convert an Office Add-in project in Visual Studio to TypeScript。请尝试一下,如果更新后的指南无法解决您的问题,请随时在此处发表评论。

    【讨论】:

    • 很高兴听到您现在解封了;感谢您提请我们注意这个问题!
    【解决方案2】:

    您可能在 HTML 中缺少对 Office-js 库的引用。检查here 以获取说明。如果您使用的是 Visual Studio 工具,则可以使用启动项目开始。示例见here(虽然示例是针对Excel,但过程与Word相同)

    【讨论】:

    • 外接程序是使用 Visual Studio 新建 - 项目向导生成的。 Home.html 页面的 元素中有 <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
    • 此外,同样的代码在 FunctionFile.js 和 Home.js 中也能正常编译。它只是不会在任何 TypeScript 文件中编译。
    • 对不起,我没有意识到你开始使用 VS。我们没有基于 VS 2017 的 TypeScript 说明……我们正在努力。您可以参考 TypeScript 的 2015 年指令 here。如果这不起作用,我鼓励您查看创建 TypeScript 模板插件的 Yo Office 工具。
    • 2015 年的教程我已经看过很多遍了。不幸的是,它似乎很少适用。例如,当您将 Home.js 更改为 Home.ts 时,没有任何反应。 Nuget 包管理器没有提示。另外,我的理解是 TypeScript 已经在 2017 年安装,所以不需要这一步?
    • 澄清一下,只要不引用Office.js,它就可以很好地编译打字稿
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多