一、什么是 TypeScript(目前已到了4版本)?
1.ts是添加了类型系统的js,适用于任何规模的项目
2.ts是一门静态类型、弱类型的语言。(弱类型是指隐性的转换数据类型)
3.ts完全兼容js,不会修改js运行时的特性
4.ts可以和js共存,这意味的js项目可以渐进式的迁移未ts
5.ts增强了编辑器的功能,提供了代码补全、接口提示、代码重构等功能
6.ts拥有活跃的社区
7.ts符合最新的es标准
二、动态类型与静态类型的区别:
类型系统按照类型检查的时机分为静态类型与动态类型:动态类型是指运行时报错(如js:js是一门解释型语言,没有编译阶段,所以在代码运行时才会报错);静态类型(如ts:在编译阶段就会报错了)
三、怎么安装ts?
npm install -g typescript
四、ts怎么编译为js?
1.新建ts文件:hello.ts
function sayHello(person: string) {
return 'Hello, ' + person;
}
let user = 'Tom';
console.log(sayHello(user));
2.tsc hello.ts(将ts文件编译为js文件)
3.运行js
node hello.js
五、ts声明数据类型?
布尔值:let type:boolean = true
数值:let type:string = 'Tom'
Null 和 Undefined:
let u: undefined = undefined;
let n: null = null;
六、任意值:任意值(Any)用来表示允许赋值为任意类型
如果是一个普通类型,在赋值过程中改变类型是不被允许的:
let myFavoriteNumber: string = 'seven';
myFavoriteNumber = 7;
// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.
但如果是 any
类型,则允许被赋值为任意类型。
let myFavoriteNumber: any = 'seven';
myFavoriteNumber = 7;
七、类型推论 :如果没有明确的指定类型,那么 TypeScript 会依照类型推论(Type Inference)的规则推断出一个类型
以下代码虽然没有指定类型,但是会在编译的时候报错:
let myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.
事实上,它等价于:
let myFavoriteNumber: string = 'seven';
myFavoriteNumber = 7;
// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.
如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成 any
类型而完全不被类型检查
八、联合类型
let myFavoriteNumber: string | number;
myFavoriteNumber = 'seven';
myFavoriteNumber = 7;
九、数组的类型
let fibonacci: number[] = [1, 1, 2, 3, 5];