栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

TypeScript入门

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

TypeScript入门

一、 Typescript 介绍
  • Typescript是由微软开发的一款开源的编程语言
  • Typescript是Javascript的超集,遵循最新的ES5/ES6规范。Typescript扩展了Javascript语法
  • Typescript更像后端Java、C#这样的面向对象语言可以让JS开发大型企业应用
  • 谷歌也在大力支持Typescript,谷歌的Angular2就是基于 Typescript语法的
  • 最新的Vue、React也可以集成Typescript.
二、Typescript安装和编译 安装
cnpm i typescript -g
tsc helloworld.ts
Vscode+Typescript
tsc --init
{"outDir": "./js"}
Terminal - Run Task - 
tsc: watch - front/tsconfig.json
三、数据类型 布尔类型(boolean)
let married: boolean=false;
数字类型(number)
let age: number=10;
字符串类型(string)
let firstname: string='zfpx';
数组类型(array)
let arr2: number[]=[4,5,6];
let arr3: Array=[7,8,9];
元组类型(tuple)

是数组类型中的一种

let fullname: [string,string]=['zhang','san'];
枚举类型(enum)

事先考虑某一个变量的所有的可能的值,尽量用自然语言中的单词表示它的每一个值
比如性别、月份、星期、颜色、单位、学历

js enum Gender{ GIRL, BOY } console.log(李雷是${Gender.BOY}); console.log(韩梅梅是${Gender.GIRL});
enum Week{ MonDAY=1, TUESDAY=2 } console.log(今天是星期${Week.MONDAY});
任意类型(any)
let root:any=document.getElementById('root');
root.style.color='red';
null 和 undefined

null 和 undefined 是其它类型的子类型,可以赋值给其它类型,如数字类型,此时,赋值后的类型会变成 null 或 undefined

let x: number;
x = 1; // 运行正确
x = undefined;    // 运行错误
x = null;    // 运行错误
let y: number | null | undefined;
y = 1; // 运行正确
y = undefined;    // 运行正确
y = null;    // 运行正确
void 类型

void表示没有任何类型,一般用于定义方法的时候方法没有返回值

function greeting(name:string):void {
    console.log('hello',name);
}
greeting('zfpx');
never类型

never是其它类型(null undefined)的子类型,代表不会出现的值

let x: never;
x = (()=>{ throw new Error('exception')})();
四、函数 函数的定义
function hello(name:string):void {
    console.log('hello',name);
}
hello('zfpx');
没有返回值
let hello2 = function (name:string):void {
    console.log('hello2',name);
}
hello('zfpx');
hello2('zfpx');
可选参数

在TS中函数的形参和实参必须一样,不一样就要配置可选参数,而且必须是最后一个参数

function print(name:string,age?:number):void {
    console.log(name,age);
}
print('zfpx');
默认参数
function ajax(url:string,method:string='GET') {
    console.log(url,method);
}
ajax('/users');
剩余参数
function sum(...numbers:number[]) {
    return numbers.reduce((val,item)=>val+=item,0);
}
console.log(sum(1,2,3));
函数重载
  • 在Java中的重载,指的是两个或者两个以上的同名函数,参数不一样
  • 在Typescript中,表现为给同一个函数提供多个函数类型定义
let obj: any={};
function attr(val: string): void;
function attr(val: number): void;
function attr(val:any):void {
  if (typeof val === 'number') {
      obj.age=val;
  } else {
      obj.name=val;
  }
}
attr('zfpx');
attr(9);
attr(true);
console.log(obj);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/244759.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号