一.TypeScript—编译选项和tsconfig.json配置选项 二.使用webpack打包ts代码 上一篇系统地总结学习了TypeScript的基础常用语法。 但我们学习 TypeScript 的目的不是为了造一间“小茅屋”,而是为了造“高楼大厦”,这也正是 TypeScript 的类型系统带来的优势。 这一篇博客会学习TypeScript 工程化的一些知识点,具体内容包括:tsc编译选项、tsconfig.json的配置、webpack打包ts代码。 一.TypeScript—编译选项和tsconfig.json配置选项 JavaScript代码可以直接被浏览器执行,而TypeScript则需要编译后才能被执行,比如使用tsc命令编译。 ---- 预告:下一篇博客会用TypeScript来开发一个贪吃蛇小游戏,用来熟练TypeScript 。感兴趣的小伙伴们一定不要错过哦! ----
我们废话不多说,一篇文章让你彻底搞懂所谓工程化的多页面应用构建。 文章中涉及的模板配置可以点击这里查看戳这里。 接下来让我们继续来支持TypeScript吧! 配置TypeScript支持 针对TypeScript代码的支持其实业内存在两种编译方式: 直接通过TypeScript去编译ts/tsx代码。 接下来让我们来使用@babel/preset-typescript预设来支持TypeScript语法吧。 接下来就让我们尝试来修改这些配置将它变成自动化且按需打包的工程化配置吧。 工程化多页配置 工程化原理 我们之前已经讲清楚了webpack中的原理了,接下来我们需要实现的过程是: 每次打包通过node脚本去执行打包命令。
【TypeScript 4.5】002-第 2 章 TypeScript 入门 一、发现问题 1、字符串 const message = "Hello World" message.toLowerCase 二、解决问题:静态类型检查 1、在代码运行之前发现错误 像 TypeScript 等类型检查工具,可以做到在代码运行之前发现错误! 2、静态类型检查 代码示例 const message = "hello world!" TypeScript 示例 代码示例 const user = { name: "大哥", age: 25 } console.log(user.location) 检查结果 3、TypeScript 编译器 npm install -g typescript 2、编译 ts 文件 示例代码 hello.ts console.log("Hello TS!")
Contents 1 问题场景 2 参考 问题场景 <script lang="tsx"> import { Vue, Component, Prop } from 'vue-property-decorator
本章节使用的是 TypeScript 来创建 Angular 的应用,这也是官方推荐使用的,本教程的实例也将采用 TypeScript 来编写。 如果你不了解TypeScript,可以查阅以下资料: TypeScript 入门教程 TypeScript 中文手册 这开始前,你需要确保你已经安装了 npm,如果你还没安装npm或者不了解 npm 可以查看我们的教程 0.1.3", "rxjs": "5.0.0-beta.12", "systemjs": "0.19.27", "zone.js": "^0.6.23", "angular2- in-memory-web-api': 'npm:angular2-in-memory-web-api', }, // packages tells the System loader defaultExtension: 'js' }, rxjs: { defaultExtension: 'js' }, 'angular2-
一.JavaScript类型 JavaScript有7种类型:Boolean、Number、String、Undefined、Null、Object,以及ES6新增的Symbol 这7种TypeScript 类型 TypeScript共有13种基本类型,除了JavaScript所有的7种之外,还有: Array:数组,表示一组类型相同的元素 Tuple:元组,表示一组固定数量的元素(不要求元素类型相同),如二元组 新增的6种类型 let list: number[] = [1, 2, 3]; // 数组 let list: Array<number> = [1, 2, 3]; // 数组 let x = "Green"; Color[Color["Blue"] = 3] = "Blue"; })(Color || (Color = {})); // 得到 // {1: "Red", 2: " Green", 3: "Blue", Red: 1, Green: 2, Blue: 3} 因此,一个有意思的技巧是根据枚举值访问key: let colorName: string = Color[2
Type | undefined { return arr[0] } func<string | number>(['a','b', 1, 4]) // 可调用时指定类型 func([1,2,3 (a.length >= b.length) { return a; } else { return b; } } func<string>('abc','cdefg') func([1,2,3 s:string):number function len2(arr:any[]):number function len2(x:any){ return x.length } len1(Math.random hello':[4,5,6] len2(Math.random()>0.5?' 类型不可以修改,声明后不可增加属性 type FullName = { firstName: string lastName: string } // 扩展并定义新类型 type FullName2
2.面向对象的那套思维模式已经根深蒂固,javascript的面向对象是模拟实现的,好多地方绕不过弯在所难免。 基于上面这两个理由,选择TypeScript语言,水到渠成。 简单写点攻略,抛砖引玉: 首先,TypeScript相关 TypeScript仍然是一种解释型语言,TypeScript语言的源码编译后成了符合AngularJS2框架标准的Javascript TypeScript语言的开发环境,首选当然是微软定身量做的Visual Code,毕竟TypeScript也是微软开源的一种语言嘛。 AngularJS用TypeScript开发,需要搭建一个脚手架。 generating-components-directives-pipes-and-services 在OSCHINA的码云上开了一个项目,你可以直接克隆下来作为脚手架: https://git.oschina.net/dayu/angularjs2-
---- 前言 本文介绍用vue2.6x+TypeScript+CompositionAPI开发web页面。 最后,为了进一步写出规范的代码,减少出错的可能,我们再用上TypeScript,TypeScript的使用,处理更好的类型判断,最最重要的,是更好的面向接口编程。 将会学到 vue2+TypeScript vue2的组合式API插件@vue/composition-api 开始实践 创建vue2 的ts项目 首先我们用vue-cli创建一个vue2的ts项目,创建时选择自定义 ,一路勾选上TypeScript、ESLint、vue2。 这样,我们就得到了vue2+TypeScript的工程。 引入组合式API 安装@vue/composition-api。
my-app', template: '
Angular在VSCode下的插件 1.Angular TypeScript Snippets for VS Code 2.Angular VS Code TypeScript and HTML Snippets Auto Importer 8.vscode-icons 9.vscode-exports-autocomplete 10.Typelens 11.Angular 2, 4 and (upcoming TypeScript, HTML Snippets for VS Code 12.The Beta Version of the TypeScript Grammar 13.Path Intellisense Formatting(自动保存,格式化代码块) 18.Add Angular Files // 方便创建组件等 (可装) 19.Angular 2, itemName=johnpapa.Angular2) ---- 暂时就这么多吧! 以后再添加吧!
2.1.2 数组 如果你要定义一个数组,你可以这么操作: // 完全由数字组成的数组,二者等价 let arr1: number[] = [1, 2, 3] let arr2: Array<number > = [1, 2, 3] // 由数字 或 字符串组成的数组 let arr3: Array<number | string> = [1, "2", 3] 2.1.3 元组 元组可以理解为是一种规定了数组长度和对应元素类型的特殊数组 , "2"] // 报错:Type 'string' is not assignable to type 'number'. let tuple: [number, string] = [1, "2", '2',3] tuple[2] // 越界访问报错! 2.硬编码问题:如果要改,改动肯定很大。 如果到了ts,可以用枚举类型来处理这种场景。 所谓枚举类型者,就是一组有名字的常量组合。
它只是用来说明我们不能在 let语句之前访问它们,幸运的是TypeScript可以告诉我们这些信息。 如果生成代码目标为ES2015,现代的运行时会抛出一个错误;然而,现今TypeScript是不会报错的。 这样做挺痛苦的,但是幸运的是,你不必在TypeScript里这样做了。 当let声明出现在循环体里时拥有完全不同的行为。 解构 Another TypeScript已经可以解析其它 ECMAScript 2015 特性了。 1 console.log(second); // outputs 2 这创建了2个命名变量 first 和 second。
【TypeScript 编程】001-002 第 1 章 导言 与 第 2 章 TypeScript 概述 第 1 章 导言 一言以蔽之!TypeScript 是未来! 参考文章: TypeScript 简介与优势 https://blog.csdn.net/Aria_Miazzy/article/details/105430400 第 2 章 TypeScript 概述 1.6 TypeScript 编译过程 TS阶段——由 TSC 操作 第一步:TypeScript 源码 => TypeScript AST ; 第二步:类型检查其检查 AST ; 第三步:TypeScript 2、类型系统 2.1 类型系统 类型检查器是程序分配类型时使用的一系列规则。 2.2 两种类型系统 第一种:通过显式句法告诉编译器所有值的类型; 第二种:自动推导值的类型。 两种类型系统,各有利弊! let a = 1 + 2 let b = a + 3 let c = { apple : a, banana: b } let d = c.apple * 4 5.2 截图说明
介绍 TypeScript 的核心原则之一是对值所具有的结构进行类型检查。我们使用接口(Interfaces)来定义对象的类型。 const person2: IPerson = { id: 2, name: 'tom', age: 20, // sex: '男' // 可以没有 // xxx: 12 // error 如果你不想指定类型,TypeScript的类型系统会推断出参数类型,因为函数直接赋值给了 SearchFunc类型变量。 函数的返回值类型是通过其返回值推断出来的(此例是 false和true)。 sub) { let result = src.search(sub); return result > -1; } 类类型 类实现接口 与 C# 或 Java 里接口的基本作用一样,TypeScript ('我正在游泳2') } } const person2 = new Person2() person2.run() person2.swim() 总结:类可以通过接口的方式,来定义当前这个类的类型
3]; let arr2: number[] = [1, 2, 3]; let arr3: string[] = ["aa", "bb", "cc"]; let arr4: Array<number :any,par2? if (par2 == undefined) { if (typeof par1 == "string") { console.log("method 2"); 做的适配定义文件,因为.vue文件不是一个常规的文件类型, //TypeScript是不能理解vue文件是干嘛的,加这一段是是告诉 TypeScript,vue文件是这种类型的。 /parser 将eslint校验改成@typescript-eslint/parser npm install @typescript-eslint/parser --save 更改.eslintrc.js
Typescript 是 Javascript 的超集。Typescript 为 Javascript 增加类型能力,主要为了避免 JS 弱类型下产生的各种有意无意的问题。 Typescript 的出现大大改善了开发体验,增强了代码的可维护性和稳定性,如今已被越来越多的大型前端项目选用。 本系列将使用TypeScript实战算法,题目全部来源于力扣题库:《剑指 Offer(第 2 版)》,本章节包括的题目有:题目难度I. ,n=2时输出1*1=1,n=3时输出1*2=2,n=4时输出2*2=4,n=5时输出2*3=6,n=6时输出2*2*2=8,n=7时输出2*2*3=12,n=8时输出2*3*3=18,n=8时输出3* = p[j-2] && p[j-2] !
_code; } } //假设现在你上个月的工资发的是人民币 类里包含了其他汇率等 const rmb = new Currency('RMB'); //这个月也发的是人民币 const rmb2 = new Currency('RMB'); //都是人民币这个结果显然是false console.log(rmb == rmb2); 要把一个引用对象变成值对象,关键动作:检查它是否不可变。 (rmb2)); 因为两个对象实际上是对值的比较了 无论你声明多少个,我们实际都操作rmb这个实例了。 c: 3 }); const map2 = map1.set('b', 50); console.log(map1.get('b') + ' vs. ' + map2.get('b')); // 完整版的 code地址 // https://redux.js.org/recipes/usage-with-typescript import { Action } from 'redux' import {
使用工具替代人工操作能够避免人为失误引起的低级错误,同时结合整体前端工程化方案,快速生成功能模块配置、自动安装依赖等,降低了时间成本。 2.2.2 局限于本地的执行环境 前端工程化的3个阶段:本地工具链、云管理平台和持续集成。三者最明显的外在差异在于,对各个功能模块执行环境的划分。 不论前端工程化是简单的本地工具链,还是集大成的持续集成阶段,脚手架的执行环境始终局限于本地,这给脚手架工具带来一个必须解决的问题:操作系统兼容性。 从功能实现的角度考量,需要具备: 1)与构建、开发、部署等功能模块联动,在创建项目时生成对应配置项; 2)自动安装依赖模块。 从平台角度考量,需要具备: 1)动态可配置; 2)底层高度可扩展。 3.4.2 模块化与工程化 模块化是属于架构层面的概念,前端工程化与模块化的关系类似于组装车间与零件。
前言 由于最近在使用vue3写项目,使用vue3的前提就是要学习TypeScript,TypeScript算是JavaScript的升级版,TypeScript包含JavaScript和自己的一些特性 介绍 TypeScript是一种由微软开发的开源、跨平台的编程语言。 2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript TypeScript的作者是安德斯·海尔斯伯格,C TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。 文件编译成01_typescript.js文件,只需要在当前目录下执行如下命令: tsc 01_typescript.ts 输出结果为一个01_typescript.js文件,它包含了和输入文件中相同的