TS介绍
- ts是由微软开发的开源的编程语言
- ts是js的超集
- ts是开发大型应用的基石
- ts提供了更丰富的语法提示
- ts可以在编译阶段检查错误
原始数据的注解
any 数据类型:任意数据类型
- 可以是任意数据类型
- 如果是对象的话,any 不能够提示原有的属性和方法
- 未给初始值的变量类型为any
- 变量初始化并赋值的时候,如果值为null 或 undefined且没有指定数据类型,则变量类型被推断为 any
voidconst a = null; // a为any类型
没有返回值,值只能为 undefined 或 null
null && undefined
- null和undefined是所有类型的子类型
- 通过设置tsconfig.json的strictNullChecks,可以让
let num : number = undefined
Never 表示永不存在的值类型
- 例如一个函数,仅仅抛出一个错误,那么它的返回值就是never类型
object 表示非原始类型
联合类型
- 联合类型的共有属性不会报错
接口 interface
- 对象的形状进行描述
- 对类的一部分行为的抽象
interface Person{readonly id: number; // 只读,赋值后不可修改name:string;age?:number; // 可选属性,可有可无[propName: string]: any; // 任意属性,必须为any}
数组的注解
写法方式
- 类型[]
number []没有长度限制 - Array<类型>
Array<number> - interface方式
```typescript interface list{
}
<a name="E7jRi"></a>#### 函数的注解方式1. 函数声明的注解方式```typescriptfunction test(a:number,b:number):number {return a + b }
函数表达式的注解方式
let test1:(a:number,b:number) => number = function(a:number,b:number):number{return a + b}函数默认值并解构注解方式
function test({a,b}:{a:number,b:number} = {a:1,b:2}){return a + b} // 多个参数 function test({a = 2}:{a:number}){return a} // 单个参数
函数的重载
TS中函数是为了让表意更清楚
function reverse(x:string):string
function reverse(x:number):number
function reverse(x:string | number){
if(typeof x === 'string'){
return x.split('').reverse().join()
}
if(typeof x === 'number'){
return Number(x.toString().split('').reverse().join())
}
}
