首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展TypeScript控制台接口

扩展TypeScript控制台接口
EN

Stack Overflow用户
提问于 2017-06-26 16:34:48
回答 2查看 4.9K关注 0票数 11

我想在window.console全局中添加一个对象。

代码语言:javascript
复制
import Reactotron from 'reactotron-react-native';

window.console.tron = Reactotron;

尽管当我这样做时,TypeScript抱怨新对象:

错误TS2339:在“控制台”类型中不存在属性“tron”。

我正在考虑扩展控制台接口:

代码语言:javascript
复制
interface ConsoleWithTron extends Console {
  tron: any
};

不过,我不知道如何将这个新接口分配给我的全局控制台对象?

帮助太好了!

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-26 16:37:30

您只需增强Console接口本身即可。请参阅合并接口

代码语言:javascript
复制
interface Console {
    tron: any
}

如果要从模块内部增强Console,则必须将其封装在declare global { }块中。请参阅全局增强

代码语言:javascript
复制
declare global {
    interface Console {
        tron: any
    }
}
票数 22
EN

Stack Overflow用户

发布于 2020-09-07 16:58:35

更好的是,我们可以在前面的答案中增加类型安全性。

代码语言:javascript
复制
/* eslint-disable import/no-extraneous-dependencies */
import { Reactotron } from 'reactotron-core-client';
import { ReactotronReactNative } from 'reactotron-react-native';

declare global {
  interface Console {
    tron: Reactotron<ReactotronReactNative> & ReactotronReactNative;
  }
}

并更简单地分配

代码语言:javascript
复制
console.tron = Reactotron;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44764418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档