TypeScript基础知识| 青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第5天
是静态类型
- 可以增强可读性:基于语法解析TSDoc,ide增强
- 可维护性增强:在编译阶段暴露大部分错误
多人合作的大型项目中,获得更好的稳定性和开发效率
[优点]
- 程序更容易理解
- 效率更高
- 更少的错误
基本语法
原始类型:
- Number
- String
- Boolean
- Undefined
- Null
- BigInt(ES6)
- Symbol(ES6)
字符串
const q:string ='string';
数字
const w:number=1;
布尔值
const e:boolean=ture
null
const r:null=null;
undefined
const t:undefined =undefined;
类型推论:
在没有明确指定类型的时候推测出一个类型
let str = 'str';
联合类型:
可以指定多种类型(但只能访问联合类型所有类型里共有的属性或方法)
let numberOrString:number | string
类型断言:
TypeScript 类型断言用来告诉编译器你比它更了解这个类型
不是类型转换,断言成一个联合类型中不存在的类型是会出现错误的
在不确定类型的时候访问其中一个类型的属性或方法
函数声明:
function add(x:number,y:number): number{
return x+y;
}
const mult:(x:number,y:number)=>number=(x,y)=> x*y;
通过extends对泛型的类型进行约束
类型别名,字面量和交叉类型
1.类型别名
就是给类型起一个别名,让它可以更方便的被重用。
关键字:type
let sum: (x: number, y: number) => number
const result = sum(1,2)
type PlusType = (x: number, y: number) => number
let sum2: PlusType
// 支持联合类型
type StrOrNumber = string | number
let result2: StrOrNumber = '123'
result2 = 123
2.字面量
常量作为类型写在冒号后面,此时冒号前面的变量只能赋值为该常量;
const str:'name' = 'name'//只能等于name 否则报错
const number:1 =1
字面量可以用 | 设置多个,形成固定的赋值范围
// 字符串字面量
type Directions = 'Up' | 'Down' | 'Left' | 'Right'
let toWhere: Directions = 'Up'//只能为其中的四个值
3.交叉类型 (Intersection Types)
对Interface进行扩展 &
interface IName {
name: string
}
type IPerson = IName & { age: number }
let person: IPerson = { name: 'hello', age: 12}