tsc$ tsc –outDir dirName$ tsc –outDir dirName compileName # 指定输出输入位置$ tsc –init # tsconfig.json$ tsc -w # 动态监视$ ts-node file # 直接运行ts文件$ npm bin -g # 查看-g命令目录$ tsc file -d # 生成.d.ts文件 type变量使用前要定义// let/var 变量名:变量类型 = 默认值变量类型number: 数值类型string: 字符串类型boolean: 布尔类型symbol: 符号类型,标识唯一对象any: 任意类型object: 对象类型(数组,元祖,类,接口,函数等)var,let 区别限定变量的作用范围防止变量的重复定义常量用处:系统配置文件路径数据库连接串公司名称,电话,邮件地址画面表示信息(登录失败,系统出错)const name:type = initial_valueconst DATA:number[] = [10, 20, 30]数组let name:type[] = initial_valuelet name:type[][] = [ [], [], []]枚举枚举类型,可以增加代码的可读性。lsenum name { name1, name2, name3 }enum Sex { MALE, FEMALE, UNKNOWN}联合类型let a: number | null | undefinedfunctionfunction run(a: string): string { return ‘’}let s = function (a: number): string {}let t1 = (x, y) => x + ylet t2 = (x, y) => { return x + y }let t3:(a: number, b: string) => void = function (a: number, b: string): void {}interface P { (a: number, b: string): void}let add: P = function (a: number, b: string): void {}函数重载通过为同一个函数(同名函数)提供多个函数类型定义来实现多种功能的目的。class静态属性,静态方法class Person { public name: string static age: number constructor (name: string) { this.name = name } public run () { console.log(‘run’) } static work () { // 静态方法里没方法调用成员方法 console.log(‘work’) }}let p = new Person(’s’)抽象类,多态多态:父类定义一个方法不去实现,让继承的子类去实现,每一个子类有不同的表现。class Animal { protected name: string constructor (name: string) { this.name = name } public eat () { console.log(this.name + ’ eat’) }}class Dog extends Animal { constructor (name: string) { super(name) } public eat () { console.log(this.name + ’ eat’) }}class Pig extends Animal { constructor (name: string) { super(name) } public eat () { console.log(this.name + ’ eat’) } public hoho () { console.log(‘hoho’) }}let d = new Dog(‘dog’)d.eat()let p = new Pig(‘pig’)p.hoho()// 抽象类: 定义一种标准abstract class Animal { abstract eat (): void abstract name: string}class Dog extends Animal { public name = ‘dog’ constructor () { super() } public eat () {}}interface类型注解:class Person {}type {}interface {}接口是规范的定义。// 属性类型接口interface Color { firstName: string name: string}let a: Color = { // 对象约束 name: ’tan’, firstName: ‘pink’}// 函数类型接口interface encrypt { (key: string, val: string): string}let md5: encrypt = (key, val): string => {}// 可索引的接口:数据,对象的约束