【问题标题】:Typescript import .js from CDNTypescript 从 CDN 导入 .js
【发布时间】:2023-12-07 08:20:01
【问题描述】:

在我的 .ts 文件中,我想引用一个 .js(由第 3 方托管)并使用 .js 文件中的一些函数。到目前为止,我发现如何做到这一点的唯一方法是修改 .html 页面并从 .ts 本身插入一个标签。除了修改 .html 页面,还有其他更优雅的方法吗?

【问题讨论】:

  • 我不确定这如何解决我的问题。
  • 您应该使用模块系统来加载您的脚本。有几个这样的系统。这个链接解释了它。

标签: typescript cdn


【解决方案1】:

听起来您正在尝试引用一些在页面加载时在运行时可用的全局变量。如果你想引用这些变量,并且你知道它们将被调用什么,你可以创建一个定义文件,并在你的 .ts 文件中引用它。你的定义文件可能被称为ThirdParty.d.ts,看起来像这样:

declare namespace ThirdParty {
  interface User {
    id string;
    getID(): string;
  }
}
export = ThirdParty;

然后你可以像这样从你的打字稿中使用那些声明的变量、类型、函数等:

/// <reference path="ThirdParty.d.ts" />
var user = new ThirdParty.User("abc");
console.log(user.getID());

d.ts 文件基本上告诉 typescript 你的 js 的类型是什么,或者你将要访问的无类型代码。

话虽如此,如果我从 CDN 加载第三方 javascript 文件,我会很谨慎。对第三方脚本的任何更改都可能与您编写的定义文件不兼容,并且可能会破坏您的代码。

【讨论】: