global.d.ts

/*** 全局定义花式打印类型 需要定义全局变量*/
declare interface PatternLog {Warn: (msg: string | Number, style?: Record<string, string>) => void;Log: (msg: string | Number, style?: Record<string, string>) => void;Error: (msg: string | Number, style?: Record<string, string>) => void;
}declare const PatternLog: PatternLog;//在window中定义 意在初始化全局变量时挂载到window上不报错
interface Window {PatternLog: PatternLog;
}

适当位置全局赋值

import { RandomColor, PatternLog } from "./utils";
//赋值 确保全局定义
window.PatternLog = PatternLog;

调用 不必在其他文件头部引入

PatternLog.Log(`共计算了${total}个物体的世界坐标 其中物体${mathCount}个`, {border: "2px solid #0f0",
});

代码

const defaultStyle = {"font-size": "10px",padding: "2px 4px","border-radius": "3px","letter-spacing": "1px",
};const warnStyle = { ...defaultStyle, color: "#fff", background: "#afa" };
const logStyle = { ...defaultStyle, color: "#fff", background: "#51f" };
const errorStyle = { ...defaultStyle, color: "#fff", background: "#f00" };const transitionStyle = (styleConf: Record<string, string>, mix?: Record<string, string>) => {let str = "";for (const [propName, value] of Object.entries(mix ? { ...styleConf, ...mix } : styleConf)) {str += `${propName}:${value};`;}return str;
};/*** 花样打印信息 拒绝朴素的平庸的打印信息* 但只能打印基本数据类型 其他类型会被转换成字符串 调用 toString()方法*/
export const PatternLog = {Warn: (msg: string | Number, style?: Record<string, string>): void => {console.log("%c%s", transitionStyle(warnStyle, style), `警告⚠️: ${msg}`);},Log: (msg: string | Number, style?: Record<string, string>): void => {console.log("%c%s", transitionStyle(logStyle, style), `${msg}`);},Error: (msg: string | Number, style?: Record<string, string>): void => {console.log("%c%s", transitionStyle(errorStyle, style), `错误												

浏览器控制台花式打印 typescript全局注入相关推荐

  1. 三大框架之spring框架+IoC控制反转、DI依赖注入

    三大框架:业务层框架Spring+IoC+DI 往期文章:jsp与cookie.重定向与RESTFul架构支持 下一章节: 持久层框架MyBatis 初识Spring框架 MyBatis 入门http ...

  2. 【Java从0到架构师】Spring - IoC 控制反转、DI 依赖注入

    IoC 控制反转.DI 依赖注入 Spring 简介 Spring 基本使用 - IoC 容器 依赖注入 (Dependency Injection) 基于 setter 的注入 - 自定义对象 be ...

  3. 什么是IOC(控制反转)、DI(依赖注入)举个形象的例子通俗易懂

    更多免费教学文章请关注这里 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清 ...

  4. typescript全局安装卸载以及npm相关问题

    全局安装 npm install -g typescript 全局安装之后,如果想要卸载要使用 npm uninstall -g typescript 全局安装之后可以在终端使用 tsc  xxx 编 ...

  5. 电脑的“应用与浏览器控制”出现黄色感叹号

    电脑中的"应用和浏览器控制"出现了感叹号,点进去却发现无最近操作,这可能是因为我们不小心安装了某个软件,然后又将其卸载,但仍然清理不干净导致的.这时,我们可以尝试将这些缓存清理干净 ...

  6. 浏览器控制bartender打印方案

    通过浏览器控制bartender10.1打印程序,首先需要考虑浏览器怎么调用外部程序,外部程序怎么控制bartender进行打印?控制bartender打印,可以使用bartender 自动化(aut ...

  7. 控制反转(IoC)与依赖注入(DI)详解

    文章目录 什么是控制反转(IoC) 控制反转(IoC)有什么作用 控制反转(IoC)是怎么分类的 依赖注入 接口注入 Setter方法注入 构造器注入 依赖查找 上下文依赖查找(Contextuali ...

  8. 什么是IOC(控制反转)、DI(依赖注入)

    原文地址(摘要了部分内容):https://blog.csdn.net/qq_22654611/article/details/52606960/ 学习过Spring框架的人一定都会听过Spring的 ...

  9. 谈谈php里的IOC控制反转,DI依赖注入

    理论 发现问题 在深入细节之前,需要确保我们理解"IOC控制反转"和"DI依赖注入"是什么,能够解决什么问题,这些在维基百科中有非常清晰的说明. 控制反转(In ...

最新文章

  1. 上传jar到nexus的thirdparty第三方库
  2. ROS调用本地摄像头数据并在rviz里显示
  3. C语言文件读写操作主要函数及其用例
  4. 领域驱动设计-什么是领域驱动设计和怎么使用它
  5. Linux 网络设备驱动开发(一) —— linux内核网络分层结构
  6. 无网络访问权限怎么办_老司机教你IPV4无网络访问权限怎么办
  7. 将Notepad++配置为Ruby编译器
  8. 操作手机数据库的uri
  9. 假如 C++ 是一只箭,你会用它来射哪只雕?
  10. 经典神经网络 -- SSD : 设计原理与pytorch实现
  11. 大端与小端字节数据详解(转)
  12. Dynamo和Bigtable对比研究
  13. 二值图像游程matlab,二值图像游程编码matlab代码.doc
  14. 【Android初学者】UI组件 介绍
  15. 那个卖了房子去大理的姑娘,4个月后又回来了
  16. 【高光谱、多光谱和全色图像融合】
  17. java excel单元格背景色,『excel表格尺寸设置』Java如何设置被导出excel单元格的样式?比如背景色,大小什么的?...
  18. Linux就业形势报告
  19. CS224d lecture 14札记
  20. Matlab将图例添加到图

热门文章

  1. 设计模式-结构型模式篇
  2. 笔记本连上无线网但是无法上网络连接服务器,笔记本电脑连上无线网却不能上网怎么处理...
  3. 看书好还是看视频好?
  4. 图神经网络处理图片分类问题
  5. 电商项目的介绍及其框架搭建
  6. Webpack升级优化小记:happyPack+dll初体验
  7. 4399疯狂小人战斗中的一个**的操作
  8. 自动驾驶汽车到底涉及了哪些技术?
  9. Linux kswapd0进程CPU占用过高,病毒清理
  10. 2024华南理工大学计算机考研信息汇总