• 安装

    npm install -g typescript
    yarn add ts-node -g 安装ts-node直接运行ts
    tsc -v 编译器版本
    tsc test.ts 编辑成js
    node test.js 执行
  • 基础数据类型

1. 任意类型 any,不确定时候用,let arrayList: any[] = [1, false, 'fine'];
let a:any="nihk"
2. 数字类型 number,所有都是浮点型,例如 let a:number=1,let b:number=null
3. 字符串类型 string 例如 let a:string=`支持单引号,双引号,顿号`;在字符串内用"${var}"
4. 布尔 boolean 例如let t:boolean=true false
5. 数组 例如 let arr:number[]=[1,2,3]
let list: Array<string> = ["n你好","中国"];
6. 元组 例如 let a:[string,number]=['abc',123]
7. 枚举 enum
enum Color {Red, Green, Blue} //默认从0开始,也能直接赋值Red=1
enum ab{a="是",b="否"}
let c: number = Color.Green; //此时c=0
let colorName: string = Color[2]; //返回Blue
8. void类型 无返回值赋值只能null undefined
9. null 对象值缺失,空对象
10. undefined 初始化未定义
默认情况下null和undefined是所有类型的子类型。 就是说你可以把 null和undefined赋值给number类型的变量。
11. never类型 不会出现的值
12.object表示非原始类型,也就是除number,string,boolean,symbol,null或undefined之外的类型
类型断言(<string>abc) 尖括号,(abc as string)也可以但是jsx必须这种
13. 联合类型number | string | boolean
type Name = string;类型别名
  • 常量变量,接口,类
var let用于变量,var多次同一变量不会报错,letconst用于常量
数组解构 let input = [1, 2];
    let [a, b] = input;
let a:number=1;
    let b:number=2;
    [a,b]=[b,a];
function f([a, b]: [number, number]) {}
let [first, ...rest] = [1, 2, 3, 4];
rest=[2,3,4]
对象结构
let o = {
    a: "foo",
    b: 12,
    c: "bar"
};
let { a, b } = o;

接口,类
interface Point {
    readonly x: number;//只读属性
    color?: string;//可选属性
}
class Animal {
public name: string;
 private name1: string;
 protected name2: string;//继承中可以
 static origin = {x: 0, y: 0}; //静态属性
    move(distanceInMeters: number = 0) {
        console.log(`Animal moved ${distanceInMeters}m.`);
    }
}

class Dog extends Animal {
    bark() {
        console.log('Woof! Woof!');
    }
}

const dog = new Dog();
  • 函数

    function add(x: number,...d: string[], y?: number,c=1): number {
      return x + y;
    }
    参数y可选传入可选参数必须跟在必须参数后面。支持默认参数,传递时候使用undefined获取默认参数.d数组表示多个参数
    泛型
    function fn<T>(a: T,b:T): void {
     console.log(a,b);
    }
    fn<any>(1,"ok");
    
    let someArray = [1, "string", false];//数组循环
    for (let entry of someArray) {//Map和Set,array
          console.log(entry);//值1, "string", false
      }
    for (let i in someArray){//可操作任何对象,更常用
          console.log(i)//建0,1,2
          console.log(someArray[i])//也能值
      }
    let list = [4, 5, 6];
    list.forEach((val, idx, array) => {
      // val: 当前值
      // idx:当前index
      // array: Array
    });
    export 导出,变量,函数,类,类型别名或接口
    每个模块都可以有一个export  default导出
    import { xx as c } from "./a";//导入
作者:Yoby  创建时间:2020-07-24 14:39
 更新时间:2024-12-05 13:26
上一篇:
下一篇: