我正在开发一个带有 Smartadmin 主题的 Asp.net MVC 项目和带有用于 Dom 操作的 JQuery 类型的 Typescript,有一个名为 SmartMessageBox 的 jquery 库用于提示消息,有没有一种简单的方法可以在我的 typescript 文件中使用这个库,因为我得到了错误构建:“JQueryStatic”类型上不存在属性“SmartMessageBox”
问问题
555 次
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
是一个全局对象,其类型是接口和描述接口的联合。JQueryStatic
SmartMessageBox
如果在多个文件中使用了消息框或其他“智能管理员”类型,您应该考虑编写一个 .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 回答