扩展TypeScript的控制台界面

ale*_*ngn 5 javascript typescript react-native

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

import Reactotron from 'reactotron-react-native';

window.console.tron = Reactotron;
Run Code Online (Sandbox Code Playgroud)

虽然当我这样做时,TypeScript抱怨新对象:

错误TS2339:"控制台"类型中不存在属性"tron".

我正在考虑扩展Console接口:

interface ConsoleWithTron extends Console {
  tron: any
};
Run Code Online (Sandbox Code Playgroud)

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

帮助会很棒!

谢谢.

Sar*_*ana 10

你可以只增加Console界面本身.请参阅合并接口:

interface Console {
    tron: any
}
Run Code Online (Sandbox Code Playgroud)

如果Console要从模块内部进行扩充,则必须将其包含在declare global { }块内.请参阅全局扩充

declare global {
    interface Console {
        tron: any
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你是在模块中添加这个吗?您可能必须将其包装在`declare global {}`中.参见[global augmentation](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#global-augmentation) (2认同)