1. 安装
命令:npm i -g typescript
检查是否安装完成:tsc (ts完全兼容js)
2. 基础类型及代码
(1)基础类型声明方式
// 数字类型
let num: number;
num = 10;
// num = 'hello' 会报错
// 字符串类型
let str: string = 'hello';
// boolean类型
let bool: boolean = false;
// any 任意类型,可以赋值给任意变量,相当于关闭类型检测
let an1: any; // 显式声明方式
let an2; // 隐式声明方式
// unknown 未知类型值,类型安全的any
// 不能直接赋值给其他变量
let uk: unknown;
let str: string; uk = str
// void 表示函数没有返回值
function fn(): void {}
function fn1(): void { return; }
function fn2(): void { return undefined; }
function fn3(): void { return null; }
// never 永远不会返回结果
function fns(): never { throw new Error('error'); }
// object 表示一个js对象
let o: object;
o = {};
let o2: {};
// array 数组类型声明
let arr: string[];
arr = ['a', 'b', 'c']
let arr2: number[];
let arr3: Array<number>;
// tuple 元组,固定长度数组,效率高
let tup: [string, string]
tup = ['a', 'b']
let tup1: [string, number]
tup1 = ['a', 3]
// enum
enum Gender { Male = 0, Female = 1 }
let i = {gender: Gender.Male}
console.log(i.gender === Gender.Male)
(2)更复杂的声明方式
// 字面量直接进行类型声明
let a: 10;
a = 10;
// a = 11; 会报错,声明后值不能在修改
// 联合类型,可以使用|链接多个类型
let b: "male" | "female"
b = "male";
b = "female";
// b = "hello"; 会报错,没有此类型值
// 类型断言,告诉解析器变量实际类型
let d: any;
let d = a as number;
let d = <number>a;
// {} 用来指定可以包含那些属性, ?表示可选属性
let o3: { name: string, age?: number };
o3 = { name: 'jack' };
// [propName: string]: any 任意类型属性,任意多个,propName可以是任意字符串
let o4: { name: string, [propName: string]: any };
o4 = { name: 'jack', age: 18, gender: 'male' };
// &符号
let o5: {name: string} & {age: number};
o5 = {name: 'jack', age: 18}
// 函数
let f: (a: number, b: number) => number;
f = function (n1: number, n2: number): number { return n1 + n2; }
// 类型别名
type myType = 1 | 2 | 3 | 4 | 5;
let k: myType;
简单记录下学习~