如何在TypeScript 3.x中使用导入的类型描述窗口对象中的自定义属性

时间:2019-07-10 20:38:53

标签: typescript

如何声明(“ typescript”:“ 3.x.x”)在窗口对象内部,我有一些具有某种类型的变量?

例如我有window.foo = { bar: 'baz' },该如何声明?这样做的旧方法是:

declare global {
  interface Window {
    foo: { bar: string }
  }
}

它会产生此错误

  

TS2669:全局作用域的扩展只能直接嵌套在外部模块或环境模块声明中。

看起来只是在某些d.ts文件中添加记录是可以的。像这样:

interface Window {
  foo: { bar: string }
}

但是据我了解,在这种情况下,我无法在该文件中导入某些类型并在声明中使用它们,而不是例如string

那我想做些什么呢?

import { MyTypeFromSomewhere } from './somewhere'
interface Window {
  foo: { bar: MyTypeFromSomewhere }
}

如何使用新属性扩展Window界面并为其指定类型?

0 个答案:

没有答案