Typescript 最佳实践
文章列表:
《一》大话 TypeScript 基本类型
《二》大话 Typescript 枚举
《三》大话 Typescript 接口
《四》大话 Typescript 泛型
《五》大话 Typescript 函数与类
《六》Typescript 最佳实践
为了更好的阅读体验, 可以看.
一年前刚接触 Typescript 的 ...
typescript
一、介绍
1.typescript是由微软开发的一款开源的编程语言
2.ts是js的超级,拓展了js语法,更像java/c#这样面向对象语言,更适合开发大型项目。
3.谷歌也在大力支持ts,谷歌的angular2x+ 就是基于ts语法的。
4.最新的Vue ,React 也可以集成ts。
二、安装和编译
1.安装:npm install -g typescript
2.生成配置文件:tsc --init ...
使用@babel/preset-typescript取代awesome-typescript-loader和ts-loader
前言
之前写过一篇旧React项目安装并使用TypeScript的文章:在React旧项目中安装并使用TypeScript的实践。
博客里使用awesome-typescript-loader对Typescript代码进行检测和转换。
而这几天又修改了一下自己的脚手架,使用@babel/preset-typescript来处理Typescript。
回顾awesome-typescript-loader方案
谈@babel/preset-t ...
TypeScript高级用法详解
引言
作为一门强大的静态类型检查工具,如今在许多中大型应用程序以及流行的JS库中均能看到TypeScript的身影。JS作为一门弱类型语言,在我们写代码的过程中稍不留神便会修改掉变量的类型,从而导致一些出乎意料的运行时错误。然而TypeScript在编译过程中便能帮我们解决这个难题,不仅在JS中引入了强类型检查,并且编译后的J ...
TypeScript tsconfig.json(TypeScript配置)
如果一个目录下存在一个tsconfig.json文件,那么意味着这个目录是TypeScript项目的根目录。 tsconfig.json文件中指定了用来编译这个项目的根文件和编译选项。 一个项目可以通过以下方式之一来编译:
不带任何输入文件的情况下调用tsc,编译器会从当前目录开始去查找tsconfig.json文件,逐级向上搜索父目录。
不带 ...
TypeScript 模块
关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变化。 “内部模块”现在称做“命名空间”。 “外部模块”现在则简称为“模块”,这是为了与 ECMAScript 2015里的术语保持一致,(也就是说 module X { 相当于现在推荐的写法 namespace X {)。
介绍
从ECMAScrip ...
Vue + TypeScript 踩坑总结
Vue+TS 踩坑记录与方案总结
点击跳转-原文地址
前言整个 vue 项目的目录结构main.ts 中,提示`import App from './App.vue'`处,找不到 App.vue 这个模块main.ts 中,往 Vue 的原型 prototype 上挂载全局变量全局组件注册SFC 单 vue 文件组件的基本写法和结构computed 计算属性的写法watch 监听器的使用同一个 vue 页面中使 ...
TypeScript 高级类型 类(class)
传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的。 从ECMAScript 2015,也就是ECMAScript 6开始,JavaScript程序员将能够使用基于类的面向对象的方式。 而使用TypeScript,我们允许开发者现 ...
TypeScript 函数
函数是JavaScript应用程序的基础。 它帮助你实现抽象层,模拟类,隐藏信息和模块。 在TypeScript里,虽然已经支持类,命名空间和模块,但函数仍然是主要的定义 行为的地方。 TypeScript为JavaScript函数添加了额外的功能,让我们可以更容易地使用。
和JavaScript一样,TypeScript函数可以创建有名字的函数和匿 ...
TypeScript
什么是 TypeScript?
TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript。 编译出来的 JavaScript 可以运行在任何浏览器上。TypeScript 编译工具可以运行在任何服务器和任何系统上。TypeScript 是开源的。
为什么选择TypeScript
TypeScript 增加了代码的可读性和可维护性
类型系统实际上是最好的文档 ...
TypeScript - 泛型
什么是泛型
官方是这样介绍的:
软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性。 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型,这在创建大型系统时为你提供了十分灵活的功能。
在像C#和Java这样的语言中,可以使用泛型来创建可重用的组件,一个组件可以支持多种类型的数据。 这 ...
在React旧项目中安装并使用TypeScript的实践
前言
本篇文章默认您大概了解什么是TypeScript,主要讲解如何在React旧项目中安装并使用TypeScript。
写这个的目的主要是网上关于TypeScript这块的讲解虽然很多,但都是一些语法概念或者简单例子,真正改造一个React旧项目使用TypeScript的文章很少。
所以在这里记录下改造一个React项目的实践。
博客内容部分参照 TypeScri ...
TypeScript SDK 和 REST API
在本文中,我们将讨论CUBA平台中已经存在很长时间的一个功能,但是很多人还不知道,这就是前端SDK生成器,并了解它如何与CUBA的REST API插件一起使用。
Java+JavaScript - 在 web 中喜结连理
仅仅只是大概八年之前,我们 Java 开发者将 JavaScript(JS) 作为“二等公民”语言用 ...
TypeScript 高级类型
⒈交叉类型(Intersection Types)
交叉类型是将多个类型合并为一个类型。 这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。 例如, erson & Serializable & Loggable同时是 erson 和 Serializable 和 Loggable。 就是说这个类型的对象同时拥有了这三 ...
TypeScript - 类型声明、枚举、函数、接口
可定义的类型
以下所写的并不代表typescript的数据类型,而是在使用过程中可以用作定义的类型。这里只列举一些常见的,不代表只有以下这些
number : 数值类型;
string : 字符串类型;
boolean : 布尔类型;
Array : 数组类型;
Date : 日期;
RegExp : 正则;
Error : 错误类型;
any : 任意类型;
undefined : undefin ...
TypeScript 高级类型 接口(interface)
在代码的实现或者调用上能设定一定的限制和规范,就像契约一样。通常,我们把这种契约称为接口。
TypeScript的核心原则之一是对值所具有的结构进行类型检查。 有时称为“鸭式辨型法”或“结构性子类型化”。 在TypeScript里,接口的作用就是为这些类型命名,以及为你的代码或第三方代码定义契约。
接口涉及到in ...
TypeScript 迭代器(iterator)和生成器(generator)
⒈迭代器(iterator)
1.可迭代性
当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的。 一些内置的类型如 Array,Map,Set,String,Int32Array,Uint32Array等都已经实现了各自的Symbol.iterator。 对象上的 Symbol.iterator函数负责返回供迭代的值。
2.for..of语句
for..of会遍历可 ...
TypeScript symbol类型
自ECMAScript 2015(ES6)起,symbol成为了一种新的原生类型,就像基本类型number和string一样。
⒈介绍及使用方式
TypeScript中使用symbol类型和JavaScript的使用方式如出一辙,也是通过Symbol构造函数创建的。
let sym1 = Symbol();
let sym2 = Symbol("key"); // 可选的字符串key
需要注意的是,Symbols ...
TypeScript 枚举
我们常常会有这样的场景,比如与后端开发约定订单的状态开始是0,未结账是1,运输中是2,运输完成是3,已收货是4。这样的纯数字会使得代码缺乏可读性。枚举就用于这样的场景。枚举可以让我们定义一些名字有意义的常量。使用枚举可以清晰地表达我们的意图。TypeScript支持基于数字枚举和字符串的枚举。
⒈数字枚 ...
TypeScript (TSLint)配置
1. 添加配置中所配置的前缀可解决报错
@Component({ selector: 'app-image-wrapper', template: ` <div [ngStyle]="style" > <img class="img" [src]="src" [alt]="desc" /> <div *NgIf="desc" class="desc">{{desc}}</div> </div>`, styleUrls: [ './index.less' ]})2. 修改 component- ...