0

我正在开发一个带有 Smartadmin 主题的 Asp.net MVC 项目和带有用于 Dom 操作的 JQuery 类型的 Typescript,有一个名为 SmartMessageBox 的 jquery 库用于提示消息,有没有一种简单的方法可以在我的 typescript 文件中使用这个库,因为我得到了错误构建:“JQueryStatic”类型上不存在属性“SmartMessageBox”

4

2 回答 2

1

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

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是一个全局对象,其类型是接口和描述接口的联合JQueryStaticSmartMessageBox

如果在多个文件中使用了消息框或其他“智能管理员”类型,您应该考虑编写一个 .d.ts 文件。官方文档和默认的jQuery .d.ts 文件应该有助于确定要做什么。保存文件<project root>/typings/smart-admin/index.d.ts并在 tsconfig.json 中添加以下内容:

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

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

于 2018-02-05T23:24:33.900 回答
0

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

于 2018-02-06T10:23:51.347 回答