ts基礎類型

let s = 'st';
console.log(s);
let arr: Array<number | string> = [1, 2, 3, '4'];
let tupe: [number, string] = [0, '1'];
//
// 函數(shù)類型
// 對象
let obj: object = { x: 1 };
// symbol類型
let sym: symbol = Symbol();
枚舉類型優(yōu)化代碼判斷

枚舉類主要用來定義一些常量,比如請求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
}
}
聲明數(shù)組
// 字符串數(shù)組
interface StringArray {
[index: number]: String
}
let shs :StringArray = ['a','b']
定義函數(shù)類型接口
// 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;
函數(shù)重載
// 混合接口
// 允許實現(xiàn)函數(shù)重載
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
}
浙公網(wǎng)安備 33010602011771號