ts基础类型
let s = 'st';
console.log(s);
let arr: Array<number | string> = [1, 2, 3, '4'];
let tupe: [number, string] = [0, '1'];
//
// 函数类型
// 对象
let obj: object = { x: 1 };
// symbol类型
let sym: symbol = Symbol();
枚举类型优化代码判断
枚举类主要用来定义一些常量,比如请求URL、文本提示信息、分类信息等等,这样方便记忆,减少硬编码,增加可读性。
enum Role {
Reporter = 1,
Developer,
Maintainer,
Owner,
Guest,
}
console.log(Role,Role.Owner)
const enum RoleEnum{
Reporter = 1,
Developer,
Maintainer,
Owner,
Guest
}
function initByRole(role: RoleEnum) {
if (role === RoleEnum.Reporter || role === RoleEnum.Developer) {
// do sth
} else if (role === RoleEnum.Maintainer || role === RoleEnum.Owner) {
// do sth
} else if (role === RoleEnum.Guest) {
// do sth
} else {
// do sth
}
}
声明数组
// 字符串数组
interface StringArray {
[index: number]: String
}
let shs :StringArray = ['a','b']
定义函数类型接口
// case1
let add: (x: number, y: number) => number;
// case2
interface Add {
(x: number, y: number): number;
}
// case3
type AddFun = (x: number, y: number) => number;
var fn :AddFun = (a: number, b: number) => a + b;
函数重载
// 混合接口
// 允许实现函数重载
function add(...rest: number[]): number;
function add(...rest: string[]): string;
function add(...rest: any[]): any {
var typ = typeof rest[0]
if (typ === 'string') {
return rest.join('')
} else if (typ == 'number') {
return rest.reduce((pre,cur) => pre+cur)
}
}
console.log(add('x','y','z'),add(1,2,3))
class 使用方法
class Dog {
constructor(name: string) {
this.name = name;
// this.pri = 'x'
}
public name: string;
// private pri: string;
run() {}
}
console.log(Dog.prototype);
console.log(new Dog('wangwang'));
// output:
// {}
// Dog{name:'wangwang' }
// 类继承
class husky extends Dog {
constructor(name: string,color:string) {
super(name)
this.color = color
}
color: string
}
类和接口关系
分类:
前端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!