这是我参与「第四届青训营 」笔记创作活动的的第5天。
TypeScript简单介绍
TypeScript是微软开发的一个开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成。TypeScript通过TypeScript编译器或Babel转译为JavaScript代码,可运行在任何浏览器,任何操作系统。 TypeScript添加了很多尚未正式发布的ECMAScript新特性(如装饰器)。2012年10月,微软发布了首个公开版本的TypeScript,2013年6月19日,在经历了一个预览版之后微软正式发布了正式版TypeScript。当前最新版本为TypeScript 4.7。
TypeScript是开源和跨平台的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在TypeScript环境中。TypeScript是为大型应用的开发而设计,并且可以编译为JavaScript。 TypeScript 支持为已存在的 JavaScript 库添加类型信息的头文件,扩展了它对于流行库的支持,如 jQuery,MongoDB,Node.js 和 D3.js 等。这些第三方库的类型定义本身也是开源的,所有开发者都能参与贡献。
以上是标准的官方解释。
TypeScript入门
1、 字符串拼接采用模版字符串
采用模版字符串代替拼接:
let myName: string = 'Tom'
// not good
let sentence: string = "Hello, my name is "+ myName
// this is better
let sentence: string = Hello, my name is ${myName}
使用 ES6 中的模板字符串,${expr} 用来在模板字符串中嵌入表达式。
2、对象尽量不要赋空(惰性初始化)
在真正开发过程中,很少会出现对象赋空的情况,请尽量避免赋空。
如果真的在开始初始化的时候,无法直接给值,但是又一定要初始化的时候,也尽量不要直接赋空,这边建议采用惰性初始化。
let foo = {};
foo.bar = 123; // Error: Property 'bar' does not exist on type '{}'
foo.bas = 'Hello World'; // Error: Property 'bas' does not exist on type '{}'
采用 interface 惰性初始化:
interface Foo {
bar: number;
bas: string;
}
let foo = {} as Foo;
foo.bar = 123;
foo.bas = 'Hello World';
注意:采用 typescript 的类型断言机制可以通过编译,但是这样做其实在绕过类型检查机制,我们不建议采用
et foo = {} as any;
foo.bar = 123;
foo.bas = 'Hello World';
今天先写到这吧。
前端的学习永无止境,让我们继续努力吧。