Skip to main content

typeScript 学习笔记

数据类型

原始类型

  • boolean
  • string
  • number
  • null
  • undefined
  • symbol
  • BigInt
let isBool: boolean = false;
let str: string = 'qq';
let num: number = 12;

空值 void

  • 表示没有任何返回值的函数
function alertName(): void {
alert('hello');
}

null 和 undefined

  • undefined 和 null 是所有类型的子类型,意味着你可以将 undefined 的变量赋值给其他类型的变量
let u: undefined = undefined;
let n: null = null;
let a: number = u; // ✅

any 任意类型的值

  • 声明一个类型为任意类型后,如果不干预,那么任何操作返回的内容类型都为any
  • 变量如果在声明的时候未指定类型,那么默认会被识别为 any 类型
let str: any = 12;
str = 'aaa'; // ✅

let someThing; someThing = 7; someThing = 'seven'; someThing.indexOf('s'); // 等价于 let someThing: any;


## 类型推断
> - TypeScript 会在没有明确的指定类型的时候推测出一个类型;
> - `定义的时候如果没有赋值,那么typescript会默认推断出为一个any类型,不会被类型检查`;

## 联合类型
> - 表示取值可以是多种类型中的一种;
```typescript
let strAndNum: string | number;
strAndNum = 1;
strAndNum = 'aaa';

访问联合类型的属性和方法

function getLength(someThing: string | number): number {
return `${someThing}`.length;
}
function getString(str: string | number): string {
return str.toString();
}

数组类型

let fib: number[] = [1,1,2,3,5];

数组泛型

let fib: Array<number> = [1,1,2,3,5]

接口表示数组

interface NumberArray {
[index: number]: number;
}
let fib: NumberArray = [1,1,2,3,5];

类数组(用接口表示)

function sum() {
let args: {
[index: number]: number;
length: number;
callee: Function;
} = arguments;
}

函数类型

函数声明

function sum(x: number, y: number): number {
return x + y;
}

函数表达式

const sum1 = function (x: number, y: number): number {
return x + y;
};

const sum2: (x: number, y: number) => number = function (x: number, y: number): number {
return x + y;
};

接口定义函数类型

interface IFn {
(x: number, y: number): number;
getName(): string;
}
let myFn: IFn = function (x:number, y: number): number {
return x + y;
};

函数可选参数

  • 可选参数后面不允许在出现必选参数
function sum(x: number, y?: number): number {
return y? x + y : x;
}

参数默认值

  • ts 会将添加了默认值的参数识别为可选参数
  • 不受可选参数
function sum(x: number = 0, y: number): number {
return x + y;
}
sum(undefined, 2);