安装:
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属性

