TypeScript 快速入门_w3cschool
开始
安装npm i -g typescript
- 是 js 的一个超集,兼容 javaScript
- 以 javaScript 为基础构建的语言。完全支持 js 的语法
- 只要不符合类型规范 都会报错提示。就像 java 那种了,虽然麻烦,但是后期好维护
- – 需要编译,加入注释,不编译的注释的
- – js 是脚本语言,不是设计用于大型 web 开发,js 中还没有提类、模板、ts 扩展实现了这些功能
Ts 与 Js 的区别
- 相对弱类型的 js,类型化的 ts,更容易维护
- ts 扩展类、模块的概念
- ts 文件中可以写 js
- 要在应用中使用 ts,必须先编译
编译 ts 文件 生成 js 文件
tsc ts 文件名
声明变量时,需要有类型,赋值只可以时相同类型的值,函数的参数也要声明类型
字面量定义
| let k: 10;
let b: "male" | "fmale" | "cmale";
|
类型
String
Number
Object
| let a: object; a = {}; a = function () {};
let b: { name: string; age?: number }; b = { name: "孙悟空", age: 23 };
let c: { name: string; [propName: string]: any }; c = { name: "李四", age: 15, sex: "男" };
|
Boolean
Array<类型>
| let e: string[]; e = ["a", "b", "c"];
let f: number[]; f = [1, 23, 22];
let g: Array<number>; g = [1, 2, 3];
|
Any | unknown
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
let f; f = "sting"; f = 123;
let s: string; s = f;
let u: unknown; u = 10; u = "hello"; const a: string = u as string;
s = u as string; s = <string>u;
|
void | never
返回值类型,也算是基础类型。没有返回值的函数: void
| function sayHello(): void { console.log("hello world"); }
|
如果一个函数是永远也执行不完的,就可以定义返回值为 never
| function errorFuntion(): never { throw new Error(); console.log("Hello World"); }
|
另外 never 为所有类型的子类,无法再进行细分,也就意味着除了其本身没有类型可以再分配给它。
| let amazing: never; amazing = 12; amazing = true; amazing = "真神奇"; amazing = {}; amazing = [];
|
元组
|
let h: [string, number, boolean]; h = ["stirng", 12, true];
|
枚举
| enum Gender { Male, Female, }
let i: { name: string; gender: Gender };
i = { name: "张三", gender: Gender.Male, };
|
灵活类型
| let j: string | number; j = 12; j = "把子君";
let k: { name: string } & { age: number }; k = { name: "孙悟空", age: 123 };
type myType = 1 | 2 | 3 | "上"; let z: myType; z = "上"; z = 1; z = 2; z = 3;
|
类 class
- 一般用 class 做类型, 使用时,要 new 了过后才用,这样 class 中定义的默认值才能生效。
接口 interface
接口就相当于一个自定义的类型

函数
function funName():returnType
- returnType:如果函数没有返回值,就写void
- 如果有 return,参数类型一定要和 returnType 一样。
|
let d: (a: number, b: number) => number; d = function (n1, n2) { return n1 + n2; };
|
参数
形参必须携带类型
可选形参 需要在参数后面、冒号前面加
- 
参数默认值
- 