博客
关于我
TypeScript知识点简单汇总
阅读量:327 次
发布时间:2019-03-04

本文共 3798 字,大约阅读时间需要 12 分钟。

数据类型

/** * 数据类型 */let s: string;let n: number;let b: boolean;// 数组let arr1: string[] = ['a', 'b', 'c'];let arr2: Array
= [1, 2, 3, 4, 5];let tuple: [string, number] = ['a', 1]; // 元祖let arr3: (string|number)[] = ['a', 1];let anyList: any[] = ['a', 1, true];// 枚举enum Directions{ left=2, right, top, bottom}console.log(Directions.top);console.log(Directions[2]);// 对象interface LabelledValue { label: string;} function printLabel(labelledObj: LabelledValue) { console.log(labelledObj.label);} let myObj = {size: 10, label: "Size 10 Object"};printLabel(myObj);// 函数interface SearchFunc{ (source: string, subString: string): boolean}let mySearch: SearchFunc;mySearch = function(source:string, subString: string): boolean{ let result = source.search(subString); return result>-1;}// 其它方式interface Person { age:number } interface Musician extends Person { instrument:string } var drummer =
{};

函数:

function add(x: number, y: number): number{    return x+y;}let myAdd = function(x: number, y: number): number{    return x+y;}// 函数的完整类型let myAdd_: (baseValue: number, increment: number) => number = function(x: number, y: number): number{    return x+y;}

class Person{    name: string; // 属性必须赋值或者在构造函数中初始化    age: number;    constructor(name: string, age: number){        this.name = name;        this.age = age;    }    // 方法必须实现    getName(): string{        return this.name;    }}

抽象类:

abstract class Animal{    abstract type: string; // 抽象属性只需定义,无需实现(赋值或者在构造函数中初始化)    name: string; // 普通属性定义同一般类    constructor(name: string){        this.name = name;    }    abstract getType(): string; // 抽象方法只需定义,无需实现    getName(): string{ // 普通方法定义同一般类        return this.name;    }    getTheType(): string{        return this.type; // 普通方法中可以包含抽象属性    }}class Dog extends Animal{    type: string; // 类中必须实现所继承的抽象类中的属性    constructor(name: string, type: string){        super(name);        this.type = type;    }    // 类中必须实现所继承的抽象类中的方法    getType(): string{        return this.type;    }}

接口

// 属性接口interface LabelledValue {    label: string;}  function printLabel(labelledObj: LabelledValue) {    console.log(labelledObj.label);}  let myObj = {size: 10, label: "Size 10 Object"};printLabel(myObj);// 函数接口interface SearchFunc{    (source: string, subString: string): boolean}let mySearch: SearchFunc;mySearch = function(source:string, subString: string): boolean{    let result = source.search(subString);    return result>-1;}// 可索引类型接口interface StringArray{    [index: number]: string;}let myArray: StringArray = ["Bob", "Fred"];let myStr: string = myArray[0];// 类接口interface Girl{    // 接口中的属性和方法只需定义,无需实现    name: string;    age: number;     loveYou():void;}class GrilFirend implements Girl{    // 接口中的属性和方法必须实现    name: string;    age: number;    constructor(name: string, age: number){        this.name = name;        this.age = age;    }     loveYou():void{        console.log("Her name is " + this.name + ", her age is " + this.age);    }}let gf = new GrilFirend("Linda", 28);gf.loveYou();

泛型

注意,无法创建泛型枚举和泛型命名空间。

类有两部分:静态部分和实例部分。 泛型类指的是实例部分的类型,所以类的静态属性不能使用这个泛型类型。

// 泛型函数function showData
(person: T): T{ return person;}showData
('Lucy');// 泛型类型1interface GenericIdentityFn {
(arg: T): T;}function identity
(arg: T): T { return arg;}let myIdentity: GenericIdentityFn = identity;// 泛型类型2interface GenericIdentityFn
{ (arg: T): T;}function identity
(arg: T): T { return arg;}let myIdentity: GenericIdentityFn
= identity;// 泛型类// 类有两部分:静态部分和实例部分。 泛型类指的是实例部分的类型,所以类的静态属性不能使用这个泛型类型。class GenericNumber
{ zeroValue: T; add: (x: T, y: T) => T;}let myGenericNumber = new GenericNumber
();myGenericNumber.zeroValue = 0;myGenericNumber.add = function(x, y) { return x + y; };

 

转载地址:http://movq.baihongyu.com/

你可能感兴趣的文章
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>
MySQL中的时间函数
查看>>
mysql中的约束
查看>>
MySQL中的表是什么?
查看>>
mysql中穿件函数时候delimiter的用法
查看>>
Mysql中索引的分类、增删改查与存储引擎对应关系
查看>>