我有以下工作(运行)代码,但我得到TypeScript错误属性'onSubmit'不存在于类型'Window
function onSubmit() {
. . .
}
onMount(() => {
window.onSubmit = onSubmit; <-- Error
});
onDestroy(() => {
window.onSubmit = null; <-- Error
});
在我的 global.d.ts 文件中,我尝试导出要导入的接口
export interface CustomWindow extends Window {
onSubmit: () => void;
}
并声明全局
declare global {
interface Window {
onSubmit: () => void;
}
}
两个解决方案都不成功,错误仍然存在。如何将属性添加到窗口对象以供TypeScript识别?
几乎是正确的,声明
是正确的关键字,但您不需要用global
来包装它。
下面添加它:
declare interface Window {
onSubmit: () => void;
}
还要确保在你的global.d.ts
中没有任何导入
或导出
s,因为这样它就不再被视为环境模块。
我在挣扎。 当扩展一个类时,我可以很容易地向它添加一些新属性。 但是,当我扩展基类时,如果我想向基类的对象(简单对象的属性)添加新属性,该怎么办? 下面是一个带有一些代码的示例。 基类 派生类 现在,正如您可以从行内注释中看到的,这将激怒TypeScript。但这在JavaScript中工作。那么,实现这一目标的正确方法是什么呢?如果没有,问题是在我的代码模式本身吗?什么模式适合这个问题? 也许您
问题内容: 这件事困扰了我一段时间。我为什么不能做: …虽然我可以执行以下操作? 这是什么规则?您能给我介绍一下吗? 问题答案: 您可以向具有的任何对象添加属性。 例如,没有它。 字符串和其他简单的内置对象也没有它。 使用类也没有它。 除非前面的声明适用,否则用定义的类都具有它。 如果使用/的对象没有/ ,通常是为了节省空间。例如,如果有一个命令,那就太过分了- 想象一下一个非常短的字符串的膨胀程
我在我的组件中接收道具。我想在此组件中添加一个带有道具的属性“LegendPosition”。我不能那样做。请帮我做这个。我已经尝试过此代码,但没有成功:
假设定义了以下类型: 现在,考虑以下方法来向该类型添加附加属性: 扩大 交叉口 这两种方法有什么区别? 而且,为了完整性和好奇心,还有其他方法可以产生类似的结果吗?
主要内容:org.springframework.context.ApplicationContextInitializer,org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor,org.springframework.beans.factory.config.BeanFactoryPostProcessor,,,,,,,,,,,,1.可扩展的接口启动调用顺序图 ApplicationConte
主要内容:org.springframework.context.ApplicationContextInitializer,org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor,org.springframework.beans.factory.config.BeanFactoryPostProcessor,,,,,,,,,,,,1.可扩展的接口启动调用顺序图 ApplicationConte