一份不可多得的 TS 学习指南(1.8W字)

阿宝哥第一次使用 TypeScript 是在 Angular 2.x 项目中,那时候 TypeScript 还没有进入大众的视野。然而现在学习 TypeScript 的小伙伴越来越多了,本文阿宝哥将从 16 个方面入手,带你一步步学习 TypeScript,感兴趣的小伙伴不要错过。 一、TypeScript 是什么 TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 TypeScript 提供最新的和不断发展的 JavaScript 特性,包括那些来自 2015 年的 ECMAScript 和未来的提案中的特性,比如异步功能和 Decorators,以帮助建立健壮的组件。下图显示了 TypeScript 与 ES5、ES2015 和 ES2016 之间的关系: 1.1 TypeScript 与 JavaScript 的区别 TypeScript JavaScript JavaScript 的超集用于解决大型项目的代码复杂性 一种脚本语言,用于创建动态网页 可以在编译期间发现并纠正错误 作为一种解释型语言,只能在运行时发现错误 强类型,支持静态和动态类型 弱类型,没有静态类型选项 最终被编译成 JavaScript 代码,使浏览器可以理解 可以直接在浏览器中使用 支持模块、泛型和接口 不支持模块,泛型或接口 社区的支持仍在增长,而且还不是很大 大量的社区支持以及大量文档和解决问题的支持 1.2 获取 TypeScript 命令行的 TypeScript 编译器可以使用 npm 包管理器来安装。 1.安装 TypeScript

  2.验证 TypeScript

  3.编译 TypeScript 文件

  当然,对刚入门 TypeScript 的小伙伴来说,也可以不用安装 typescript,而是直接使用线上的 TypeScript Playground 来学习新的语法或新特性。通过配置 TS Config 的 Target,可以设置不同的编译目标,从而编译生成不同的目标代码。 […]

龙生   27 Apr 2021
View Details

端到端的DevOps实践

商业创新——商业画布九宫格 * 客户细分 谁是你的用户?你的用户有什么特点? * 价值主张 你可以为你的用户提供什么样的产品和服务? * 渠道通路 你通过什么渠道与你的客户接触? * 客户关系 你与你的客户将建立一种什么样的关系? * 收入来源 这套商业模式可以有哪些收入来源? * 核心资源 你已经具有或者需要掌握怎样的核心资源? * 关键活动 你需要开展哪些核心活动? * 重要伙伴 你需要有哪些重要的合作伙伴? * 成本结构 这套商业模式在哪些地方花钱?成本结构是怎样的? 商业创新——精益画布 * 问题 最需要解决的三个问题 * 解决方案 产品最重要的三个功能 * 关键指标 应该考核哪些东西 * 独特卖点 用一句话简明扼要但引人注目的话阐述为什么你的产品与众不同,值得购买 * 门槛优势 无法被对手轻易复制或者买去的竞争优势 * 渠道 如何找到客户 * 客户群体分类 目标客户 * 成本分析 争取客户所需花费 销售产品所需花费 网站架设费用 人力资源费用等 * 收入分析 盈利模式 客户终身价值 收入 毛利 产品设计 * 管理账户 * 浏览 * 购买 * 支付 * 配送 * 退货 敏捷开发 * Scrum 迭代式增量软件开发过程,通常用于敏捷软件开发。 持续交付 * 计划——编码——构建——测试——发布——部署——运营——监控—>下个循环 * 持续部署 蓝绿部署 灰度发布(金丝雀发布) 持续运营 * […]

龙生   25 Apr 2021
View Details

jvm安装及配置

【安装】 1、下载安装包: 在官网下载https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2、上传到服务器/usr/lib目录下 3、解压:

  4、配置环境变量

  添加

  5、生效

  6、检查是否生效

出现版本号则已生效   【调优配置】 1、堆配置 -Xms 初始堆大小 -Xmx 最大堆大小 -Xmn 设置年轻代大小 -Xss 设置每个线程的堆栈大小 典型设置: -Xmx3550m      设置JVM最大可用内存为3550m; -Xms3550m      设置JVM初始内存为3550m,此值可以设置-Xmx相同,以避免每次垃圾回收完成以后JVM重新分配内存; -Xmn2g             设置年轻代大小为2G。整个堆大小=年轻代大小+年老代大小+持久代大小。持久代一般固定为64M,所以增大年轻代后,将会减少年老代大小,此值对系统性能影响比较大,Sun官方推荐配置为整个堆的3/8; -Xss128k           设置每个线程的堆栈大小。JDK5.0以后每个线程栈大小为1M,以前每个线程堆栈大小为256k。根据应用的线程所需要内存大小进行调整。在相同物理内存下,减少这个值能够生成更多的线程。但是操作系统对一个进程内的线程还是有限制的,不能无限生成,经验值在3000-5000左右。 为什么要区分新生代和老生代 堆中区分的新生代和老年代是为了垃圾回收,新生代中的对象存活期一般不长,而老年代中的对象存活期较长,所以当垃圾回收器回收内存时,新生代中垃圾回收效果较好,会回收大量的内存,而老年代中回收效果较差,内存回收不会太多。   2、设置年轻代大小 -XX:NewSize          年轻代初始值 -XX:MaxNewSize   年轻代最大值 -XX:NewRatio        年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代) -XX:SurvivorRatio  年轻代中Eden区与Survivor区的大小比值   3、回收器的选择 -XX:+UseParallelGC   选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并行收集,而年老代仍旧使用串行收集。 -XX:PARALLELgcThreads    配置垃圾回收线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相同。 -XX:+UseParallelOldGC    配置年老代来及收集方式为并行收集,JDK6.0支持对年老代并行收集 -XX:MaxGCPauseMillis=100    设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值 -XX:+UseAdaptiveSizePolicy   设置此选项以后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低响应时间或者收集频率等,此值建议使用并行收集器时,一直打开   【调优工具】 Jconsole,jProfile,VisualVM

龙生   25 Apr 2021
View Details

Date.parse()

Date.parse() 方法解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。 不推荐在ES5之前使用Date.parse方法,因为字符串的解析完全取决于实现。直到至今,不同宿主在如何解析日期字符串上仍存在许多差异,因此最好还是手动解析日期字符串(在需要适应不同格式时库能起到很大帮助)。

  语法 显式调用:

  隐式调用:

  参数 dateString 一个符合 RFC2822 或 ISO 8601 日期格式的字符串(其他格式也许也支持,但结果可能与预期不符)。 返回值 一个表示从1970-1-1 00:00:00 UTC到给定日期字符串所表示时间的毫秒数的数值。如果参数不能解析为一个有效的日期,则返回NaN。 描述 parse 方法接受一个日期字符串(例如 "Dec 25, 1995"),并返回从1970-1-1 00:00:00 UTC到该日期字符串所表示日期的毫秒数。该方法在基于字符串值设置日期值时很有用,例如结合使用setTime() 方法和 Date() 构造函数。 parse 方法接受一个表示时间的字符串,返回相应的时间值。该方法可以接受符合 RFC2822 / IETF 日期语法 (RFC2822 Section 3.3) 的字符串,如 "Mon, 25 Dec 1995 13:30:00 GMT"。该方法能够理解美国大陆时区的缩写,但是为了更通用,应该使用时区偏移,如 "Mon, 25 Dec 1995 13:30:00 +0430" (格林威治的子午线向东偏移4小时30分钟)。如果没有指定时区,默认使用本地时区。 GMT 和 UTC 被看作相等。 如果 RFC2822 Section 3.3 格式中不包含时区信息时,会以本地时区来解析日期字符串。 由于在解析日期字符串时存在偏差会导致结果不一致,因此推荐始终手动解析日期字符串,特别是不同的ECMAScript实现会把诸如“2015-10-12 12:00:00”的字符串解析为NaN,UTC或者本地时间。 ECMAScript 5 ISO-8601 日期格式支持 另外,日期时间字符串也可以使用 ISO 8601 格式。例如,"2011-10-10" (仅日期)或 "2011-10-10T14:48:00" (日期和时间)能够作为参数被传递和解析。 如果参数字符串只包含日期格式,那么将会使用UTC时区来解析该参数。而如果是ISO 8601 格式中规定的时间加日期的格式,则将会被作为本地时区处理。 虽然在日期字符串解析过程中会使用时区修饰符,但返回值总会是从由NaN表示的1970-1-1 00:00:00 UTC到该日期字符串所表示日期的毫秒数。 由于 parse() 是 Date 的一个静态方法 , 所以应该使用 Date.parse() 来调用,而不是作为 Date 的实例方法。   默认时区的区别 当输入为 "March 7, 2014" 时, parse()  将默认使用本地时区。但如果使用 ISO  格式如 "2014-03-07" ,则会被默认为 […]

龙生   23 Apr 2021
View Details

npm install --save 、--save-dev 、-D、-S 的区别与NODE_ENV的配置

备注:<=> 意为等价于; 1、npm install <=> npm i --save   <=> -S --save-dev  <=> -D npm run start <=> npm start  // 对应"scripts"里的"start"命令 少敲几下键盘,何乐而不为 2、npm i --save-dev  <packname>   工程构建(开发时、“打包”时)依赖 ;例:xxx-cli , less-loader , babel-loader… 3、npm i --save <packname>  项目(运行时、发布到生产环境时)依赖;例:antd , element,react… 4、对应关系如下(至于我们啥时候用--save、啥时候用--save-dev 感觉是个规范问题,用反了项目一样可以跑起来(对于安装依赖正确时),但会给其他看你项目的人带来误解、可能会导致一些bug的出现,还有一些配置的错乱等) 5、使用 npm i 安装package.json里的依赖时,两部分的包都会pull下来 5-1、使用 --prod、 npm i --prod <=> npm i --production  // 仅会拉取dependencies中的依赖 5-2、设置NODE_DEV=production时            // 效果同上,仅会拉取dependencies中的依赖 (注意等号两边没空格) 5-2-1、命令行设置(注意不同环境时的"分割符") window => cmd :set NODE_ENV=production && xxxx mac      => shell  : NODE_ENV=production 空格 xxxx 5-2-2、package.json=>script命令中设置 彩蛋:在新建package.json文件时,我们可以使用npm init -y 快速创建(yes 表示一路默认创建,还有 -f 表示 force)   from:https://blog.csdn.net/jwl_willon/article/details/81054978

龙生   22 Apr 2021
View Details

vs 启用非托管调试时不允许更改

解决方案: 项目->右键属性->调试->启用本机代码调试,去掉勾选!   from:http://www.csframework.com/archive/1/arc-1-20170923-2353.htm

龙生   19 Apr 2021
View Details

如何:启用非托管代码调试

提示 Visual Studio 学习版(如 Visual C# 速成版)不支持调试非托管代码, 只有完整的 Visual Studio 产品才支持此操作。 位于**“项目设计器”的“调试”页上的“非托管代码调试”**属性确定是否支持本机代码调试。 如果要调用 COM 对象,或启动调用您的项目的、以本机代码编写的自定义程序,并且需要调试本机代码,请选定此选项。 启用对非托管代码的调试 在**“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”**。 单击**“调试”**选项卡。 选中**“启用非托管代码调试”**复选框。 禁用对非托管代码的调试 在**“解决方案资源管理器”中选定一个项目,然后在“项目”菜单中单击“属性”**。 单击**“调试”**选项卡。 单击以清除**“启用非托管代码调试”**复选框。   from:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/tdw0c6sf(v=vs.100)

龙生   19 Apr 2021
View Details

C#生成Guid的几种方式

  from:https://www.cnblogs.com/shiyh/p/10966059.html

龙生   19 Apr 2021
View Details

[配置问题记录]gradle配置下的springboot项目中启用lombok,报错: cannot find symbol symbol: variable log

eclipse已安装lombok插件,ide提示均正常,但gradle中编译报错cannot find symbol 经过排查发现是build.gradle中少了annotationProcessor配置导致,补充第二行配置后刷新项目搞定 implementation 'org.projectlombok:lombok:1.18.10' annotationProcessor 'org.projectlombok:lombok:1.18.10' ———————————————— 版权声明:本文为CSDN博主「chandtler」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/chandtler/article/details/103287550

龙生   19 Apr 2021
View Details

3dmax2016闪退,急求解决方法!

每次打开,到这个界面就闪退了。 解决办法:打开这个文件 C:\Users\Administrator\Local Settings\Autodesk\3dsMax\2016 – 64bit CHS是中文版,ENU是英文版,哪个版本有问题,删掉哪个,重新打开MAX就可以了。   from:https://zhidao.baidu.com/question/1995227828416053787.html

龙生   17 Apr 2021
View Details
1 97 98 99 418