草庐IT

TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

前言:    最近用typeScript,也就是大家常说的【 TS】写点东西,但是老是提醒这个未定义,那个可能为空,主要是tsconfig.json中的严格模式我没关,所以今天总结一下,严格模式中【TS】中遇到 对象可能为“未定义”的具体场景,以及共有几种解决方法! 1、Vue3结合TS获取HTMLElement时报“未定义” 我们看下面代码,因为我是想使用 ref的这种方式获取DOM节点,进而去使用DOM方法(虽然不推荐在Vue/React直接操作DOM,偶尔用一下还是没关系的),然后就会警告。 简单粗暴的处理就是在后面加一个【!】感叹号,告诉TS引擎此元素存在,有点类似于asxxx的意思!

TS 对象可能为“未定义”,不能将类型“ XXXX | undefined “分配给类型{ xxxx }

前言:    最近用typeScript,也就是大家常说的【 TS】写点东西,但是老是提醒这个未定义,那个可能为空,主要是tsconfig.json中的严格模式我没关,所以今天总结一下,严格模式中【TS】中遇到 对象可能为“未定义”的具体场景,以及共有几种解决方法! 1、Vue3结合TS获取HTMLElement时报“未定义” 我们看下面代码,因为我是想使用 ref的这种方式获取DOM节点,进而去使用DOM方法(虽然不推荐在Vue/React直接操作DOM,偶尔用一下还是没关系的),然后就会警告。 简单粗暴的处理就是在后面加一个【!】感叹号,告诉TS引擎此元素存在,有点类似于asxxx的意思!

TS封装小程序wx.showModal弹窗及调用

现在ts+scss开发小程序越来越多了,我们平时调用showModal弹窗相对频繁的话,可以对它进行封装,减少代码量,方便调用。1.封装我们先看正常的展示效果 再看微信小程序的原调用代码wx.showModal({title:'提示',content:'是否确认的提示内容',success(res){if(res.confirm){console.log('用户点击确定')}elseif(res.cancel){console.log('用户点击取消')}}})提炼可以成为变量的部分,一般情况是三个,有取消操作的话,是4个。1.title:弹窗提示标题,一般默认“提示”2. content:弹

TS封装小程序wx.showModal弹窗及调用

现在ts+scss开发小程序越来越多了,我们平时调用showModal弹窗相对频繁的话,可以对它进行封装,减少代码量,方便调用。1.封装我们先看正常的展示效果 再看微信小程序的原调用代码wx.showModal({title:'提示',content:'是否确认的提示内容',success(res){if(res.confirm){console.log('用户点击确定')}elseif(res.cancel){console.log('用户点击取消')}}})提炼可以成为变量的部分,一般情况是三个,有取消操作的话,是4个。1.title:弹窗提示标题,一般默认“提示”2. content:弹

MPEG-2 TS流结构浅析

一、概述             MPEG-2是MPEG(MovingPictureExpertsGroup,运动图像专家组)组织制定的视频和音频有损压缩标准之一,它的正式名称为“基于数字存储媒体运动图像和语音的压缩标准”。MPEG-2标准是在1994年11月为数字电视而提出来的,目前分为9个部分,统称为ISO/IEC13818国际标准。其中第一部分ISO/IEC13818-1是系统(System)部分,该部分解决了将一个或多个基本视频流、音频流以及其他数据流合并成适合存储或传输的单个或多个流的问题。如下图为ISO/IEC13818-1标准中的原图,该系统(System)部分主要描述的是图中竖

MPEG-2 TS流结构浅析

一、概述             MPEG-2是MPEG(MovingPictureExpertsGroup,运动图像专家组)组织制定的视频和音频有损压缩标准之一,它的正式名称为“基于数字存储媒体运动图像和语音的压缩标准”。MPEG-2标准是在1994年11月为数字电视而提出来的,目前分为9个部分,统称为ISO/IEC13818国际标准。其中第一部分ISO/IEC13818-1是系统(System)部分,该部分解决了将一个或多个基本视频流、音频流以及其他数据流合并成适合存储或传输的单个或多个流的问题。如下图为ISO/IEC13818-1标准中的原图,该系统(System)部分主要描述的是图中竖

Vue——patch.ts【十四】

前言前面我们简单的了解了vue初始化时的一些大概的流程,这里我们扩展下Vue的patch。内容这一块主要围绕vue中的__patch__进行剖析。__patch__Vue.prototype.__patch__的方法位于scr/platforms/web/runtime/index.ts中;//installplatformpatchfunction//判断是否是浏览器环境,是就赋予patch否则就赋予空函数Vue.prototype.__patch__=inBrowser?patch:nooppatch.tspatch.ts位于src/platforms/web/runtime/patch.

Vue——patch.ts【十四】

前言前面我们简单的了解了vue初始化时的一些大概的流程,这里我们扩展下Vue的patch。内容这一块主要围绕vue中的__patch__进行剖析。__patch__Vue.prototype.__patch__的方法位于scr/platforms/web/runtime/index.ts中;//installplatformpatchfunction//判断是否是浏览器环境,是就赋予patch否则就赋予空函数Vue.prototype.__patch__=inBrowser?patch:nooppatch.tspatch.ts位于src/platforms/web/runtime/patch.

python 爬虫下载视频 并 安装使用 ffmpeg 合并ts视频文件 使用16进制 修改文件头类型

示例:私聊获取示例链接第一步找到视频资源接口这是m3u8的资源获取接口 使用postman模拟发送请求发现无法获取到数据报错403 查看请求头发现 还有其他请求参数设置请求头 在pyhton中使用request请求 获取到资源文档发现链接内容都是ts文件采用多线程下载ts文件#采用线程池下载m3u8里的tsdefdown_ts():#读取文件内容withopen("./hhls.m3u8","r",encoding="utf-8")asf:#n=0#创建10个线程withThreadPoolExecutor(10)ast:#循环文件内容forn,lineinenumerate(f):line=

python 爬虫下载视频 并 安装使用 ffmpeg 合并ts视频文件 使用16进制 修改文件头类型

示例:私聊获取示例链接第一步找到视频资源接口这是m3u8的资源获取接口 使用postman模拟发送请求发现无法获取到数据报错403 查看请求头发现 还有其他请求参数设置请求头 在pyhton中使用request请求 获取到资源文档发现链接内容都是ts文件采用多线程下载ts文件#采用线程池下载m3u8里的tsdefdown_ts():#读取文件内容withopen("./hhls.m3u8","r",encoding="utf-8")asf:#n=0#创建10个线程withThreadPoolExecutor(10)ast:#循环文件内容forn,lineinenumerate(f):line=