typescript入门(一)

134 阅读2分钟

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」。

一、安装typescript

  1. 全局安装typescript:
npm i -g typescript
  1. 添加typescript配置文件
tsc --init
  1. 创建文件并编译 创建./src/index.ts文件:
let hello: string = 'hello world';

执行编译:

tsc ./src/index.ts

编译后生成index.js文件:

var hello = 'hello world';
  1. 配置webpack环境 安装依赖:
 npm i webpack webpack-cli webpack-dev-server -D   

安装ts-loader和typescript依赖:

npm i ts-loader typescript -D

安装html-webpack-plugin :

npm i html-webpack-plugin -D

安装clean-webpack-plugin:

npm i clean-webpack-plugin

安装webpack-merge:

npm i webpack-merge -D

二、ts类型

image.png

三、基础类型

基础类型: boolean、number、string、undefined、null、object、symbol、array、tuple、enum、any、void、never、联系断言。

1. boolean、number、string、undefined、null、object、symbol类型

基本写法:变量:类型

let bool: boolean = false;
let num: number = 2;
let str: string = "sss";
let u: undefined = undefined;
let n: null = null;
let obj: object = {x: 1};
let sym: symbol = Symbol("a"); 

2. null和undefined类型

null和undefined默认情况下是所有类型的子类型,可赋值给其他类型的变量。

let num: number = 1;
let n = null;
num = n;

如果在tsconfig.json指定了"strictNullChecks":true ,null 和 undefined 只能赋值给 void 和它们各自的类型。

3. Array类型

Array类型中所有元素类型都要与预定义的类型一致。

写法一:类型[]

let arr:number[] = [1,2,3];

写法二:数组泛型 Array<类型>

let arr:Array<number> = [1,2,3];

联合类型的数组:(类型1 | 类型2)[]

let arr2:(number | string)[];
arr2 = ['ss', 2];

4. tuple

(1) tuple类型表示一个已知元素数量和类型的数组,各元素的类型不必相同。

写法:[类型1,类型2,...]

let arr3:[string,number] = ['ss',11];

(2) 注意:元组中元素数量是固定的,以下写法会报错:

let arr4:[string,number] = ['ss',111];

但元组用push方法来添加元素时不会报错:

let arr3:[string,number] = ['ss',11];
arr3.push(2);
console.log(arr3); // ['ss',11,2]

(3)可选参数 元组可选参数写法:参数后加问号

let arr4:[string,number?] = ['ss'];

(4) 剩余参数 剩余元素代表元组类型是开放的,可以有零个或多个额外的元素。

剩余元素只能放在参数最后。

写法:...数组

let arr5:[string,...number[]] = ['ss', 1,2];

(5)只读元组

只读元组只能读,不能写。

只读元组写法:变量:readonly[类型1,类型2,...]

let arr6:readonly[string,...number[]] = ['ss', 1,2];

arr6[0] = 'qq';//报错,只读元组不能修改