大佬教程收集整理的这篇文章主要介绍了TypeScript:在全局窗口上声明构造函数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在 window 对象上声明一个预期的构造函数。
declare global {
interface Window {
MyAPI: {
MyClasstype: any
}
}
}
expect(new window.MyAPI.MyClasstype()).toNotBe(undefined)
any
应该是什么?
它应该是你的类的类型,例如
class MyClass {
constructor(public name: String) {}
}
declare global {
interface Window {
MyApi: {
MyClassType: MyClass;
};
}
}
,
打字稿的一个好处是你可以使用类作为类型
class MyClass {}
在声明中
@H_173_5@myClassType: MyClass,
看起来您希望 window.MyApi.MyClassType
成为您的类/构造函数而不是实例。如果您希望它是一个实例,那么您可以使用 @H_173_5@myClassType 作为类型。否则你需要typeof MyClassType
。
但是为了让它正常工作,如果您想使用 declare global
语法,您需要确保声明的文件需要包含至少一个 import
或 {{1}否则你会得到一个错误“全局范围的增强只能直接嵌套在外部模块或环境模块声明中。”
这是一个工作示例:
export
但如果您不希望文件有任何导入或导出,这也是另一种可能性:
class MyClassType {
// Your class implementation
}
export default MyClassType;
window.MyApi = {
MyClassType: MyClassType,};
declare global {
interface Window {
MyApi: {
MyClassType: typeof MyClassType;
};
}
}
这些让您可以像这样访问 API:
class MyClassType {
// Your class implementation
}
declare var MyApi: { // eslint-disable-line
MyClassType: typeof MyClassType;
};
window.MyApi = {
MyClassType: MyClassType,};
以上是大佬教程为你收集整理的TypeScript:在全局窗口上声明构造函数全部内容,希望文章能够帮你解决TypeScript:在全局窗口上声明构造函数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。