美文网首页
TypeScript基础

TypeScript基础

作者: 北风吹_yfy | 来源:发表于2021-04-09 14:59 被阅读0次

一、简介

TypeScript 是以 JavaScript 为基础构建的语言,一个JavaScript 的超集,可以在任何支持JavaScript的平台中执行,TypeScript 扩展了JavaScript ,并添加了类型,同时TS 不能被JS解析器直接执行,需先转换为JS。

二、为TypeScript开发搭建环境

1、下载Node.js
2、安装Node.js
3、使用npm全局安装typescript
命令:npm i -g typescript
4、创建一个ts文件
5、使用tsc对ts文件进行编译
命令:tsc xxx.ts

三、基础类型

let a: number;    // 数字
a = 3;
let b: string;   // 字符串
b = 'bob';
let c: boolean; //  布尔值
c = true;
let d: boolean | string;  // 或
d = true;
d = 'hello';
  • any 表示的是任意类型,一个变量设置类型为any后相当于对该变量关闭了类型检测,使用TS时,不建议使用any类型。
let d: any;
d = true;
d = 'hello';
d = 10;

声明变量如果不指定类型,则TS解析会自动判断变量的类型为any(隐式的any)。

let d;
d = true;
d = 'hello';
d = 10;
  • unknown 表示未知类型的值,实际上就是一个类型安全的any,不能直接赋值给其他变量。
let e: unknown;
e= true;
e= 'hello';
e= 10;
  • 注意:
    any类型的值可以赋值给任意变量
let s: string;
s = d;  // d为any类型,同时改变了s的类型也为any
s = e;  // e为unknown类型,将报错不能讲unknown类型的值赋给string类型的值
if(typeof e === 'string') {  // 先做类型判断
    s = e;
}
  • 类型断言:可以用来告诉解析器变量的实际类型
    语法:
    (1)变量 as 类型
    (2)<类型>变量
s = e as string;
s = <string>e;
  • void 用来表示空,以函数为例,就表示没有返回值的函数
function fn(): void {}
  • never 表示永远不会有返回结果
function fn2(): never {
    throw new Error('报错了!')
}

四、复杂类型

  • object 表示一个对象
let a: object;  // 一般不这么用
a = {};
a = function(){}
// {}一般用来指定对象中可以包含哪些属性
// 语法:{属性名: 属性,属性名: 属性}
let obj : {
  name: string,
  age?: number,   // ? 表示可选属性
};
b = {name:'jack', age: 12};
// [propName: string] : any 表示任意类型的属性
let c: {name: string, [propName: string]: any};
c = {name: 'zhu', age: 13, gender: '女'};

// 设置函数结构的类型声明
//  语法:(形参: 类型,形参: 类型,...) => 返回值
let d: (a: number, b: number) => number;
  • Array数组
    写法一:类型[]
    写法二:Array<类型>
let f:number[];  // 表示数值数组
let g:Array<number>;  // 表示数值数组
  • 元祖,就是固定长度的数组
    语法:[类型,类型]
let h:[string, number];
h=['hello', 123];
  • enum 枚举
enum Gender{
    Male,
    Female,
}
let i: {name: string, gender: Gender};
i = {
    name: '孙悟空',
    gender: Gender.Male 
}
console.log(i.gender === Gender.Male);
  • &表示同时
let j: {name: string} & {age: number};
j = {name: '孙悟空', age: 18}
  • 类型的别名
type myType = 1|2|3|4|5;
let k: myType ;
let l: myType ;
let m: myType ;

相关文章

网友评论

      本文标题:TypeScript基础

      本文链接:https://www.haomeiwen.com/subject/klgfhltx.html