一 、环境配置
- 下载node.js
- 安装typescript: npm i -g typescript
- 创建一个 .ts文件
- 编译ts为js: tsc 文件名
二、基本用法
1. 入门案例
let a: number;
let b: boolean = false;
let c = false;
function sum01(a, b) {
return a + b;
}
console.log(sum01("sd", "sf"));
function sum02(a: number, b: number) {
return a + b;
}
function sum03(a: number, b: number): number {
return a + b;
}
2. 基本类型
let a: number;
let b: boolean;
let c: string;
c = 'shu';
let fruit: 'apple' | 'banana' | 'peach' | 'melon'
fruit = 'apple';
let mixed: string | number;
mixed = 'test';
mixed = 10;
let randomVar01: any;
let randomVar02;
let e: unknown;
e = 'haha';
if (typeof e === "string") {
mixed = e;
console.log(mixed)
}
mixed = e as string;
mixed = <string>e;
function fn01(): void {
return;
}
function fn02(): string {
return "success";
}
function fn03(): never {
throw new Error("failure");
}
3. 类型进阶
let a: {
name: string,
age: number,
address: string,
isEnable: boolean
};
a = {
name: 'shuzhan',
age: 20,
address: 'shanghai',
isEnable: true
}
let b: {
name: string,
age?: number
}
b = {
name: 'sz',
}
b = {
name: 'sz',
age: 12,
}
let c: {
name: string,
[propName: string]: any
}
c = {
name: 'sz',
age: 10,
address: 'sx',
isEnable: false
}
let d: (a: number, b: number) => boolean;
d = function (n1, n2): boolean {
return (n1 + n2) < 10;
}
let e: string[];
let f: number[];
let g: Array<boolean>
let h: [string, number]
let i: [string, number, string]
enum GENDER {
Male,
Female
}
type myType = string | number | boolean
let k: myType
三、编译模式
1. 单个文件
- tsc demo01.ts -w 热更新编译
- tsc 单次编译
console.log("haha");
console.log("nihao");
2. 配置文件
{
"compilerOptions": {
"module": "commonjs",
"target": "esnext",
"sourceMap": true,
"outDir": "./dist",
"allowJs": false,
"checkJs": false,
"removeComments": true,
"noEmitOnError": true,
"alwaysStrict": true,
"noImplicitAny": true,
"strictNullChecks": true,
"strict": true
},
"exclude": [
"node_modules"
],
"include": [
"../ts-demo/part01/demo01.ts"
]
}