打字稿文件中的外部jQuery库

时间:2018-02-05 09:32:34

标签: jquery typescript smartadmin

我正在开发一个Asp.net MVC项目,其中包含Smartadmin主题和Typescript以及用于Dom操作的JQuery类型,有一个名为SmartMessageBox的jquery库用于提示消息,是否有一种简单的方法可以在我的typescript文件中使用这个库,因为我明白了 错误构建:属性'SmartMessageBox'在类型'JQueryStatic'

上不存在

2 个答案:

答案 0 :(得分:0)

如果消息框仅用于一个文件,最简单的解决方案是在文件顶部添加类似的内容:

declare const jQuery: JQueryStatic & {
    // *** Choose one of the following ***
    // Most basic:
    SmartMessageBox: any;
    // Better (assuming SmartMessageBox is a function):
    SmartMessageBox(/*param type info*/): /*return type or void*/;
};

这表示jQuery是一个全局对象,其类型为接口JQueryStatic的{​​{3}}和描述SmartMessageBox的接口。

如果是消息框或其他&#34;智能管理员&#34;类型用于多个文件,您应该考虑编写.d.ts文件。 unionofficial documentation应该有助于确定要做什么。将文件保存在<project root>/typings/smart-admin/index.d.ts下,并在tsconfig.json中添加以下内容:

{
    "compilerOptions": {
        "typeRoots": ["./node_modules/@types", "./typings"]
    }
}

这告诉编译器在./typings以及./node_modules/@types(从{npm安装的@types包的默认位置)下查找类型定义。

答案 1 :(得分:0)

您必须为SmartMessageBox创建一个d.ts文件。 https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html