IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Typescript学习(二) -> 正文阅读

[JavaScript知识库]Typescript学习(二)

一、类型断言的用途
1.将一个联合类型断言为其中一个类型
注:联合类型可以断言为其中类型,父类可以断言为子类,任何类型可以断言为any类型,any类型可以断言为任意类型。

interface Cat{
	name:string;
	run():void;
}
interface Fish{
	name:string;
	swim():void
}
function isFish(animal:Cat|Fish){
	//if(animal.swim){这样会报错,因为没有判断它的类型
	if((animal as Fish).swim){//为了欺骗编译器,告诉它有类型的
		return true
	}else{
		return false
	}
}	

二、类型别名

type lString=string;
let username:lString="小米"
username=123;//error

type lStringNumber=string|number
let user1: lStringNumber=123//right
user1="123"//right

//约束字符串的取值,约束事件绑定
type Eventname="click"|"scroll"|"mousemove";
let eventStr:Eventname="cli";//error
let eventStr:Eventname1="click";//right

三、枚举类型

enum Days{sun,mon.tue,wed,thu,fri,sat};
console.log(Days["sum"])
console.log(Days[0])

注:
第一次在tsc enum.ts编译后,执行node enum.js
结果:
//undefined
//sun
第二次在tsc enum.ts编译后,执行node enum.js
//0
//sun

enum Days{sun,mon.tue,wed,thu,fri,sat};
let day:Days=Days.sun;
let days:Days[]=[Days.sun,Days.mon];

四、类class
封装、继承、多态、存取器、抽象类、接口
public、private、protected

class Animal{
	public name;
	public constructor(name){
		this.name=name
	}
}
let a= new Animal('Jack')
console.log(a.name)//Jack
a.name="Tom"
console.log(a.name)//Tom

class Animal{
	private name;
	public constructor(name){
		this.name=name
	}
	public sayname(){
		return this.name;
	}
}
let a= new Animal('Jack')
console.log(a.name)//error
a.name="Tom"
console.log(a.name)//error
console.log(a.sayname())//right

public 可以在内外部可用
private 只能内部使用
protected 允许子类访问使用
五、参数属性与只读
readonly

class Animal2{
	public constructor(public name){
	}
}
//相等于
class Animal1{
	public name;
	public constructor(name){
		this.name=name
	}
}

class Animal3{
	public name;
	public readonly color:string;//只读属性
	public constructor(name){
		this.name=name
	}
}
let a1=Animal3('小米','蓝色')
a1.color='红色'//error

六、抽象类

abstract class Animal4{
	public name;
	public constructor(name){
		this.name=name
	}
	abstract public sayhi(){
		return this.name;
	}
}
class Cat4 extends Animal4{
	sayhi(){
		console.log('cat4')
	}
}
let cat4:Cat4=new Cat4();//right
let cat4:Animal4=new Cat4();//right

七、类与接口
类与接口放在一起

//门-》类-》防盗门-》防盗门会响铃
interface Alarm{
	alert():void
}
abstract class Door{
	public abstract open();
}
class SecerityDoor extends Door implements Alarm{//继承接口
	open(){
		console.log('打开门')
	}
	alert(){
		console.log('响铃')
	}
}

八、泛型

//基本写法
function creatArray(length:number,value:any):Array<any>{
	let result=[];
	for(let i=0;i<length;i++){
		result[i]=value;
	}
	return result;
}
//泛型写法
function creatArray<T,U>(length:number,value:T,value2:U):Array<T|U>{
	let result:T[]=[];
	for(let i=0;i<length;i++){
		result[i]=value;
	}
	return result;
}


interface CreateArrayFn{
	<T>(length:number,value:T):Array<T>;
}
let CreateArray2: CreateArrayFn=function<T,U>(length:number,value:T,value2:U):Array<T>{
	let result:T[]=[];
	for(let i=0;i<length;i++){
		result[i]=value;
	}
	return result;
}

class GenericNumber<T>{
	zeroValue:T;
	add(x:T,y:T):number{
		console.log(x)
		return 0
	}
}
let nemberObj=new GenericNumber<number>()
numberObj.add(10,10)
numberObj.add(10,'1')//error,因为在new的时候已经将归类为number类型了。
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:43:22  更:2021-08-02 10:45:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/22 2:10:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码