字节青训营 浅尝Type Script

HybridCLR与Addressable结合时Script Missing问题解析与解决方案 在Unity游戏开发中,热更新技术是支持游戏持续迭代和内容动态扩展的关键能力,其核心原理在于运行时动态加载和执行新的代码逻辑。资源管理系统则负责游戏资产的按需加载与更新,优化内存使用和用户体验。当热更新框架与资源管理系统协同工作时,需要确保代码与资源的加载顺序严格匹配,否则会出现资源反序列化时找不到对应脚本类型的“Script Missing”错误。这一问题的技术价值在于揭示了Unity底层序列化机制与运行时类型系统的交互细节,对构建稳定可靠的热更新架构具有重要指导意义。在实际应用场景中,特别是使用Hybr 阅读详情

Type Script

TS 其实是 js 的超集 , 用于解决一些js 存在的问题 ,由微软提供的为 js 语言的增强

image-20230502145920155

TypeScriptJavaScript
作为JS的一种增强 解决大型项目的代码复杂性脚本语言 ,用于创造动态网页和编写一些脚本
强类型,支持静态,动态类型动态弱类型语言
可以在编译期间发现纠正错误只能在运行时发现错误
不允许改变变量的数据类型变量可以复制成不同类型

ts 为我们带来了什么

image-20230502150010601

TS 基础类型

  • boolean , number ,stirng
  • enum
  • any, unknown ,void
  • never
  • []
  • tuple
var value : [数据类型]
enum f{}

TS 函数类型

  • 定义:TS定义函数需要输入参数类型和输出类型
  • 输入参数: 参数支持可以选参数和默认参数
  • 输出参数: 输出可以自动推断,没有返回值的时候 默认为 void
  • 函数重载: 名称相同但是参数不同 ,可以通过重载支持多种类型
function add(x:number[]) : number
function add(x:string[]): number

TS interface

  • 定义 : 接口是为了定义对象类型
  • 特点
    • 可以选属性:?
    • 只读属性: readonly
    • 可以描述函数类型
    • 可以描述自定义属性
  • 接口可以非常灵活
  • 如果有需要也可以用 key string 的方式去设置属性
interface Person{
    name : string
    age: number
}
const p1 : Person{
    name: 'lin',
    age:18
}

p1.name 
p1.age

// key string
interface RandomKey{
    [propName:string]:string
}
cosnt obj : RandomKey{
    a:"hello",
    b:"world"
}

TS Class

  • TS 支持es6 的class 关键字 写法和js差不多
  • 特点:
    • 增加了 修饰符 public private(私有) protected (只能子类使用)
    • 抽象类:
      • 只能被继承 不能实例化
      • 作为基类,抽象方法必须被子类实现
    • interface 约束类 使用 implements 关键字
class a {
    public name  : string
}
class b extends a{}

TS 进阶 高级类型

  1. 联合类型 | 可以多个属性
  2. 交叉类型 & 可以将属性混入到对象中
  3. 类型断言 可以省去相关类型推断
  4. 类型别名 type 和 接口的差异为
    1. interface是js定义对象的
    2. type 是定义别名方便实用
    3. type 可以定义基础类型 但是不会混合
    4. type 和 interface 功能类似 可能被混淆
    5. 一般涉及到类和混合属性使用interface,对函数 和其他可以按照习惯
let num number|string
num = 8
num = "eight"
interface p {
    name:string
}

type stu = P &(grade:number)
const student :stu
student.name
student.grade
function getlist(arg:number|string): number{
    const str = arg as string
}

TS 泛型

泛型的定义是需要考虑灵活性和可重用性的

  1. 泛型的语法是<>写类型参数 一般用 T 来表示
  2. 使用时有两种指定类型:
    1. 定义要使用的类型
    2. 通过ts 判断 自动推导类型
  3. 泛型的作用是临时暂未,通过传来的类型进行推导
function print <T>(arg:T):T{
    return arg
}

泛型工具类型

  • typeof : 获取类型
  • keyof : 获取所用key
  • in : 遍历枚举类型
  • T[k]: 索引发放稳
  • extends 泛型约束
interface p{
    name:string
    age:number
}

type k1 = keyof p //'name'|'age'

TS 实战

  1. declare 三方库需要类型声明文件
  2. .TS 文件定义
  3. @types 三方库类型包
  4. tsconfig.json 定义TS 的配置

后端接口类型约束

import axios from 'axios'

interface API{
    'book/detail':{
        id:number
    },
    '/book/comment':{
        id:number,
        comment:string
    }
}

function request<T extends keyof API >(url:T,obj:API[T]){
    return axios.post(url,obj)
}

request( '/book/comment',{
    id:1,
    comment:"good!"
})
别再踩坑了!ABAP里用CL_JAVA_SCRIPT调用JS计算MD5的完整流程(含中文UTF-8处理) 本文详细解析了ABAP中通过`CL_JAVA_SCRIPT`调用JS计算MD5的完整流程,特别针对中文字符UTF-8处理的常见问题提供了可靠解决方案。文章对比了不同方案的优缺点,并给出环境配置、核心实现、性能优化及异常处理等实践指南,帮助开发者避免跨系统校验中的常见陷阱。 阅读详情

相关推荐

Zemax操作33--5倍激光扩束器

5倍扩束

lzy750750的博客 2930

别再踩坑了!ABAP里用CL_JAVA_SCRIPT调用JS计算MD5的完整避坑指南(含中文处理)

本文详细解析了ABAP系统中使用`CL_JAVA_SCRIPT`调用JavaScript计算MD5哈希值的完整解决方案,特别针对中文等多语言字符处理的编码差异问题。通过实战代码和性能优化建议,帮助开发者实现跨平台一致的MD5计算结果,提升数据校验的可靠性。

weixin_30673611的博客 186

AD学习笔记(一)基础认识

文章目录AD学习笔记第一讲 AD基础认识一、两库两图(分别对应下图)1、PCB图(pcbdoc)2、原理图(schdoc)3、原理图库(schlib)4、PCB库(pcblib)二、封装1、DIP封装2、LQFP封装三、绘制整体流程1、建立工程(PrjPcb)2、建立两库两图并保存整个工程(五次)3、从库中提取绘制原理图4、原理图导入pcb图5、根据原理图布线6、pcb图交由工厂打板 AD学习笔记 第一讲 AD基础认识 一、两库两图(分别对应下图) PCB图(pcbdoc) 原理图(schdoc) PCB库

qq_52465473的博客 6686

e-script 脚本语言

escript 是一种类c/c++的脚本语言,同时可以编译成字节码以提高执行速度。e-script v2 特性:- 使用基于寄存器的运算结构,有利于代码优化,进一步提高运行速度- 兼容javascript的大部分语言特性- 使用其他GC技术来解决循环引用带来的问题- 支持脚本上下文的重入e-script v1 特性:- 建立在vm lib 之上,因此可以移至到任意的平台- 使用基于flex和bis

etechi的板蓝根 1886

告别臃肿VS!仅用Visual Studio 2022 Build Tools为Qt 5.12.12配置MSVC2017开发环境

本文详细介绍了如何仅使用Visual Studio 2022 Build Tools为Qt 5.12.12配置MSVC2017开发环境,避免安装臃肿的完整VS。通过精准选择组件、配置Qt Creator编译器和优化Kit设置,实现高效、精简的Windows平台Qt开发环境搭建,特别适合追求性能和资源优化的开发者。

weixin_30340617的博客 349

VSCode终端打不开?3分钟搞定Windows下Terminal配置(附最新JSON设置方法)

本文针对Windows系统下VSCode终端无法启动的常见问题,提供了详细的诊断与解决方案。核心在于更新已弃用的旧配置,采用最新的JSON设置方法,通过定义`terminal.integrated.profiles.windows`和指定`terminal.integrated.defaultProfile.windows`,快速修复并优化终端配置,实现三分钟内恢复正常使用。

flower的专栏 740

26字节工程营-前端-自我总结

仓库地址:https://github.com/ceilf6/code-tape。

2301_78856868的博客 480

数学:箭头符号→(to)都表示什么意义?

数学符号“→”在不同领域有不同含义:在逻辑中表示“蕴含”(p→q);在函数中表示映射关系(f:A→B);在极限中表示变量趋近(x→a);在推导过程中表示推理方向(A→B)。此外,它也可能用于向量表示或数列趋势。其具体含义需结合上下文判断,核心应用场景包括逻辑运算、函数定义、极限分析和数学推导等。

shunzi2016的博客 5559

JS/VBS配合Adodb.Stream处理字节数据/输出二进制文件

一开始,我曾想到将字节数据转换为JS字符串,每两个字节一组转换为一个字节,然后写入模式为文本、编码为“Unicode”的Adodb.Stream对象。这样做有下面这些问题,但各有方法解决:首先,将字节数据转换为双字节字符必须要考虑高低位字节顺序(Byte Order)的问题。关系到JS字符串字节顺序的到底是硬件还是软件,目前我还无从得知。不过在目前一般Windows的IE/JScript 5.7中,JS字符串是高位在前低位在后(little endian)。解决方法:在字节对转换成字符前,先将高低字节数据调

CaiKanXP的专栏 7275

UE5 Mass交通规则设计指南:从Stop Sign到智能红绿灯的进阶配置

本文详细解析了UE5 Mass框架下的交通规则设计,从基础Stop Sign到智能红绿灯的进阶配置。通过UMassTrafficIntersectionSpawnDataGenerator等核心组件,实现动态响应、自然流畅的交通行为系统,提升虚拟城市的真实感与游戏性。

weixin_30500105的博客 501

QGroundControl实现多机控制

前言 作为西安电子科技大学的本科生一名,目前在研究关于无人机导航规划与轨迹控制方面。 目前在跟导师做关于雷达无人机的一个项目,在这里记录一下关于QGC地面站实现多机控制的一些方法。 某些地方写的可能不是很完善,欢迎大家补充。 目前该文章还未写完,后期本人会继续编写 多机控制原理 多机地面站支持TCP,UDP和串口等三种连接方式,首先我们需要对这两种连接方式抽象出一个基类LinkInterface,提供两个虚函数分别对应于数据接受和发送处理,针对于不同的连接方式实现TCP,UDP和串口连接相对应的子类TCPL

Phillweston的博客 8428

Gnu linker script 脚本手册-笔记

一.概述 链接过程由链接脚本(lds文件)控制,链接脚本主要用于规定输出文件的内存布局。(可以看做链接过程中的Makefile) 链接器的默认链接脚本,可以通过 ld --verbose 来进行查看,可以通过 -T 选项用于指定自己的链接脚本。 二.简单例子 SECTIONS { . = 0x10000; .text : { *(.text) } . = 0x800000; .data : { *(.data) } .bss : { *(.bss) } } . = 0x10000 :

dream0130__的博客 742

当几何失效时:3D激光SLAM退化场景的本质与应对策略

本文探讨了3D激光SLAM在退化场景(如长廊、隧道等)中的挑战与解决方案。文章从数学角度分析了退化原因,指出信息矩阵秩亏导致某些方向约束缺失。主流算法采用不同策略应对:LeGO-LOAM利用地面约束与解耦优化;LIO-SAM/LVI-SAM通过多传感器融合补偿;FAST-LIO系列依赖IMU短期积分。新兴的RID-LIO方案创新性地利用激光强度信息增强约束,实验显示精度提升63.59%。研究表明,针对不同退化方向需要采用特异性补偿策略,而挖掘现有传感器的潜在信息维度是提升鲁棒性的有效途径。

Studying…… 617

音视频入门基础:FLV专题(10)——Script Tag实例分析

用一个具体的例子来对Script Tag进行分析。

崔杰城的博客 1481

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

音视频入门基础:FLV专题(9)——Script Tag简介

Script Tag简介

崔杰城的博客 1678

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

fiddler script 判断request中包含某参数_Fiddler的基本界面介绍

点击上方蓝字,关注我们前言fiddler的界面,主要是分以下6个模块。      一:主菜单栏:  可以参考:https://www.cnblogs.com/sjl179947253/p/7620524.html二:工具栏:   1、:选中一个菜单中的http,可以添加注释,在该http后面的comment中可以看到。 2、:向服务器重新发送请求 3、:删除...

weixin_32969997的博客 404

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

链接脚本(Linker Script)解析

链接脚本实质上是一个规则文件,程序员用来指挥链接器工作的,当我们编写了多个C文件,调用了大量库,如何编译成一个可执行文件呢?这是链接脚本文件就会发挥他的作用了:将多个目标文件(xx.o)、库文件(xx.a)、动态库(.so)等等链接成一个可执行文件。

保持一颗永远好奇、勇于探索的心 1万+

XMLHTTP Get HTML页面时的中文乱码之完全客户端Script解决方案

常有人说,他们在使用XMLHTTP过程中,总是为中文乱码的问题烦恼。本人查阅了一些资料,结果令我失望,大家都是使用ASP服务器端技术解决该问题。    先分析一下为何会出现中文乱码的问题。原因很简单:XMLHTTP得到Response时假定Response是UTF8编码的,它把含GB2312编码的HTML当成UTF8格式,因此,出现了中文乱码。    那么,除了使用ASP服务器端脚本技术外,就没有

ZetaChow 1544

浏览器解析HTML头部的底层逻辑:从字节流到渲染树的关键一步

本文深入解析浏览器如何解析HTML头部标签(<head>)及其对性能的影响。文章首先介绍头部的基本结构和核心作用,包括元数据、资源链接等四类标签及其对渲染、SEO和资源加载的影响。随后详细剖析解析流程的底层机制,从字节流到DOM节点的转换过程,以及PreloadScanner等关键组件的工作原理。重点分析了<title>, <meta>, <link>和<script>等标签的解析细节和阻塞机制,并给出减少头部阻塞的优化实践,如内联关键CSS、延迟

糯米导航 562

Python pyc文件全解析:从字节码原理到部署排坑指南

在Python开发中,理解代码执行机制是优化性能的关键。Python采用‘先编译后解释’的混合模式,源代码首先被编译为平台无关的字节码,再由Python虚拟机执行。这一过程不仅确保了跨平台兼容性,还通过缓存编译结果——即生成pyc文件——来显著提升模块的加载速度。pyc文件作为字节码的持久化存储,其核心价值在于平衡执行效率与一致性,尤其在大型项目或频繁导入的场景下效果显著。然而,若管理不当,陈旧的pyc缓存可能导致代码更新后行为未变、性能下降等‘诡异’问题。本文将从技术原理出发,深入探讨pyc文件的生成规则

weixin_30530339的博客 392

浏览器解析 HTML 头部的底层逻辑:从字节流到资源调度

本文从浏览器底层执行流程出发,解析 HTML 头部从字节流、字符编码、Tokenizer、Tree Builder、head 插入模式,到 CSS、JavaScript、preload、preconnect 等资源调度机制,帮助理解 head 标签如何影响页面加载、渲染和性能优化

话梅糖の优快云 Blog 236

script text html 参数,<script type="text/html"></script> js模版使用

12341.首先这种写,在页面渲染的时候,浏览器不会读取script标签中的html代码2.外面不能获取到里面的div节点所以:在使用时,要在script标签上加个ID可以供我们找到它,即然做模版用,且里面的html代码不会被渲染读取,则需在外面再新建一个div来当容器,装下这些html代码,即我们可以通过var _html=document.getElementById('javascript_...

weixin_39887961的博客 2070

pycdc:跨越25年Python版本鸿沟的字节码考古学

在Python技术演进的漫长历程中,每个新版本都带来了字节码指令集的微妙变化,这些变化如同考古地层中的文化层,记录着语言进化的每一个脚印。当面对一个编译后的.pyc文件,我们看到的不仅仅是机器指令,更是Python解释器对源代码理解的深层映射。pycdc项目正是这样一把时间钥匙,它能够穿越Python 1.0到3.13的25年技术断层,将字节码的二进制遗迹还原为人类可读的源代码。 ## 技术哲学

gitblog_00722的博客 484

字节跳动面试

** 1、什么是跨域,解释原理 ** 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。首先狭义的同源就是指,域名、协议、端口均为相同 cors CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出

qq_38259997的博客 221
上一篇: Mysql高手养成——第一章:索引知识,浅尝性能分析
下一篇: 三千字回顾ES6
冷环渊
博客等级 码龄7年 1130粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷环渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值