安装
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多次同一变量不会报错,let会 const用于常量
数组解构 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";//导入
文档更新时间: 2021-12-28 00:20 作者:Yoby