Knockout/jQuery 为什么要使用 Definitely Typed 打字稿文件

Why use Definitely Typed typescript files for Knockout/jQuery

这可能是个愚蠢的问题,但有人可以告诉我是否 'required' 将明确类型的 (.d.ts) 版本的外部库与 Typescript 一起使用吗? 我有一个以常规方式使用 jQuery 和 Knockout 的代码库(包括 html 文件中的 script/cdns)。此外,我需要更新代码库以使用 Typescript。我想知道这些是否是保持 jQuery 和剔除引用完整并仍然使用 Typescript 的问题。

不,这不是必需的

它们主要用于工具支持(例如智能感知)和编译时检查,因为它们描述了外部库的 API。如果您不关心这些,您可以放弃包含它们,但您可能需要告诉 Typescript 这些库公开的全局变量。

例如:

declare var ko, $, jQuery;
ko.applyBindings({}, $(".root-container"))[0];

有比这些 declare 更聪明的方法,事实上 正是 .d.ts 文件包含的内容:您正在使用的库的巧妙声明.看看e.g. at the Knockout .d.ts file(我会说从底部开始),它们并不太复杂。