在 typescript 中引用 VSS.SDK。错误:未定义 VSS

Posted

技术标签:

【中文标题】在 typescript 中引用 VSS.SDK。错误:未定义 VSS【英文标题】:To reference VSS.SDK in typescript. Error : VSS is not defined 【发布时间】:2020-10-17 07:30:08 【问题描述】:

我尝试使用 node_modules 中的vss-web-extension-sdk,当我编译项目时。

但是当我上传它时说;

打字稿文件中的一小段代码

VSS.init(
        explicitNotifyLoaded: false,
        usePlatformStyles: true,
        usePlatformScripts: true
    );

vss-web-extension-sdk的目录结构(在node_modules下)

我也尝试referenceimport我使用它的sdk,但无法正常工作。我的尝试如下和我得到的错误如下......

/// <reference path = "../../../node_modules/vss-web-extension-sdk/typings/index.d.ts/" />

错误:文件 '.../node_modules/vss-web-extension-sdk/typings/index.d.ts/' 不是 在'rootDir''.../src'下。 'rootDir' 应包含所有源 文件.ts(6059)

import  "../../../node_modules/vss-web-extension-sdk"

错误:找不到模块:错误:无法解决 '../../../node_modules/vss-web-extension-sdk' in ...

import "vss-web-extension-sdk"

错误:找不到模块:错误:无法解析“vss-web-extension-sdk” 在...

【问题讨论】:

【参考方案1】:

我在 html 文件中包含并初始化 VSS.SDK,然后我也可以从 .tsx 文件中使用它。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
    <script src="../../lib/VSS.SDK.min.js"></script>
</head>
<body>
    <script type="text/javascript">
        // Initialize the VSS sdk
        VSS.init(
            explicitNotifyLoaded: true,
            usePlatformScripts: true
        );
        VSS.ready(function () 
            VSS.register(VSS.getContribution().id, function (context) 
                return 
                    // ...
                  ;
            );

            VSS.notifyLoadSucceeded();
        );
    </script>
    ...
    ...
    ...
</body>
</html>

注意:如果你得到

由于 MIME 类型不匹配(X-Content-Type-Options: 不闻)

从 HTML 文件中引用 SDK 后,查看此答案

https://***.com/a/41319855/9851619

【讨论】:

以上是关于在 typescript 中引用 VSS.SDK。错误:未定义 VSS的主要内容,如果未能解决你的问题,请参考以下文章

Typescript入门手册之引用类型在TypeScript中的应用

Typescript入门手册之引用类型在TypeScript中的应用

TypeScript:编译删除未引用的导入

如何在 TypeScript 3.0 中使用项目引用?

在 Typescript 中,啥是 ! (感叹号/爆炸)操作员取消引用成员时?

在 Typescript 中,啥是 ! (感叹号/爆炸)操作员取消引用成员时?