typescript

284 阅读2分钟

安装:

npm install -g typescript

mac下加权限 sudo npm install -g typescript

tsc -v 判断是否安装完成

简单实例 

新建demo.js

function greet(name: string) {    
  return name;
}
let user = "test";
console.log(greet(user));

编译 tsc demo.js

运行 node demo.js

基础类型:

class对象:


class Animal {    hail: boolean;    eyes: string;    sex: number;    constructor(hail:boolean,eyes: string,sex: number){        this.hail = hail;        this.eyes = eyes;        this.sex = sex;    }}class Person extends Animal{    name: string;    age: number;    constructor(hail:boolean,eyes: string,sex: number,name:string,age:number) {        super(hail,eyes,sex);        this.name = name;        this.age = age    }    getImf():string{        return "姓名"+this.name+"年龄"+this.age+"hail"+this.hail+"eyes:"+this.eyes;    }}var person = new Person(false,"black",24,"text",1);console.log(person.getImf());

定义变量

let num:number = 123;
let str:string = "123";
let list:number[] = [1,2,3,4,5];/*定义数字数组*/
let list2:Array<number> = [1,2,3,4,5];
let list2:Array<any> = [1,2,3,4,5,"123123"];/*定义任何原数数组*/
let list1:string[] = ["1","2"];/*定义字符串数组*//*原组*/
let x : [string,number];x = ["asdf",12];

枚举

/*获取到枚举里面的变量*/
enum enumDemo {    
 name = "name",    
 age = "age",    
 sex = "sex"
}
console.log(enumDemo.age);


any类型

//定义任何类型let anyDemo:any = "123";anyDemo = 123;

let list3:Array<any> = [1,2,3,4,5,"123123"];/*定义任何原数数组*/


void类型  表示无任何类型

function voidDemo():void {    console.log(123);}

null undefined 类型(是所以元素的子类型 never也是)

let nDemo:number = 3;

nDemo = null;

null和undefined需要用到联合类型

let nDemo:number | null | undefined = 3;


never类型 一版使用在报错情况下  或者死循环

function error(message:string):never {
    throw new Error(message);
}
function fail() {    
    return error("something failed");
}

object类型

declare 表示声明

/*object类型*/
declare function creatObj(o:object | any) :void;
let o = creatObj({    "name":"text"});
console.log(o);

as 强制转换(当类型为any时进行转换)

let str:any = "asdlfja alskjdf";
let num:number = (str as string).length;


let 不能重复声明

const  常量 不能重新赋值  对象可以  因为是引用类型

解构


数组


对象


后面的会覆盖前面的



接口 interface

正常


interface  来检测数据类型


接口 可选属性 使用?这个符号


接口 可只读属性  使用 readonly属性 数组用ReadonlyArray属性