TS-tipNode1

49 阅读3分钟

一 类型

一 安装包

npm install typescript -g

安装完后tsc -V查看版本号即安装完成

nod环境中执行 ts

npm i @types/node --save-dev (node环境支持的依赖必装
npm i ts-node --g

输入ts-node index.ts即可执行index.ts 文件

二 基础类型

  • string
  • boolean
  • number
  • undefinde
  • null
  • viod
  • any
  • unknow

void类型

let u: void = undefined; let v: void = null; void除了可以赋值为undefined/null,还可以表示没有返回值的函数:

image.png

如果你配置了tsconfig.json 开启了严格模式,则 let a:void = null会报错。如下:

{ "compilerOptions":{ "strict": true } }

any unknow

  • 1.顶级类型 any unknow

  • 2.Object

  • 3.Number Boolean ...

  • 4 number..

  • 5 1 false..

  • 6 never

  • 区别1: unknown可赋值对象只有unknown 和 any,any可以赋值给任意对象

let unknown :unknown = 123;
let any:any = 456;
any=unknown;
console.log('any',any);

输出--->123
  • 区别2:
如果是any类型在对象没有这个属性的时候还在获取是不会报错的
let obj:any = {b:1}
obj.a
 
 
如果是unknow 是不能调用属性和方法
let obj:unknown = {b:1,ccc:():number=>213}
obj.b
obj.ccc()

image.png

二 接口和对象类型

Object object 和 {}

let a: Object = 1;   //大写Object
let c: Object = "str";
let d: Object = true;
let e: object = [111]//小写object只引用类型,不支持原始类型。一般常用语泛型约束
let f :{}=1243;//相当于 new Object 和大写Object一样

数组类型

let arr: number[] = [12, 2];
let arr2: boolean[] = [true, false];
let arr1 :any[]=[1,"1",true]
// 数组泛型
let arr3: Array<string> = ["ABC", "EFG"];
//二维数组
 let arr4:number[][]=[[1,2],[3,5]];
//   用接口表示数组 一般用来描述类数组 只要索引的类型是数字时,那么值的类型必须是数字。
interface NumberArray {
    [index: number]: number;
}
let fibonacci: NumberArray = [1, 1, 2, 3, 5];

接口

typescript中,我们定义对象的方式要用关键字interface(接口),我的理解是使用interface来定义一种约束,让数据的结构满足约束的格式。定义方式如下:

  1. 使用接口约束的时候不能多一个属性也不能少一个属性, 必须与接口保持一致
  2. 重名interface 可以合并
  3. 继承
  4. 可选属性 使用?操作符
  5. 任意属性
  6. 只读属性

任意类型 image.png

interface Person {
    name: string,
    age: number,
    [propName: string]: any;
}
const person: Person = {
    name: "mary",
    age: 19,
    aaaa: "aaaa"
}

只读属性,比如一些id 属性啊,等等

image.png

使用interface定义函数

interface Fu{
    (name:string):number[],

}
const fu:Fu = function(name:string){
    return [1]
}

函数

  • 函数的可选参数
  • 函数参数的默认值
  • 接口定义函数
  • 定义剩余参数
  • 函数重载
重载是方法名字相同,而参数不同,返回类型可以相同也可以不同。

如果参数类型不同,则参数类型应设置为 any。

参数数量不同你可以将不同的参数设置为可选

function fn(params: number): void
 
function fn(params: string, params2: number): void
 
function fn(params: any, params2?: any): void {
 
    console.log(params)
 
    console.log(params2)
 
}
 
 
 
fn(123)
 
fn('123',456)

ps 参考学习 csdn 作者:小满zs