..

typescript


  • node
  • yarn, brew install yarn
  • typescript, yard add -g typescript
  • ts-node, yard add -g ts-node
brew install node, yarn
yarn add -g typescript ts-node
# 获取安装的二进制地址
yarn bin

可以通过 tsc 去理解当前的 ts 的语法糖

tsc class.ts --lib es2016,dom --pretty
graph LR; ts-->tsc-->js;

graph TD; any-->内置类型; any-->用户定义类型;

内置类型

  • string
  • number, 包括 整数 和 浮点数
  • void
  • null, 值是 undefined 的对象
  • undefined 初始化后的默认值

定义变量

var a:string = “a” 设置为 string
var a = “a” 和 上面 等价, a 的类型会被设置为 string (Inferred Typing)
var a:string 和 上面 等价, a 的类型会被设置为 string
var a a 的类型会被设置为 any, 值是 undefined

作用域

  • global
  • class variable & class static variable
  • local (method)

Optional Parameters: function a(id:number, name: string, desc?:string) {}

Rest Parameters: function a(id:number, ...restParams:string[]) {}


var a = [10, "d"]
var x:string|number = a[0]
var y:string|number = a[1]
console.log("x is " + x)
console.log("y is " + y)
var [x, y] = a

let a:string|number;
a = 12
a = "d"

一般多个类型的时候, 会使用 typeof 来做判断


interface IPerson {
  name:string
  other:number|string
}

const person:IPerson = { name: "a", other: 1 }

graph TD; clazz-->Fields; clazz-->Constructors; clazz-->Functions;

typescipt 不支持多继承

  • static; 静态, 类变量/方法 的关键词
  • instanceof typeof;
  • implement; class 可以实现某个接口

namespace A {
  export interface IPerson {}
  export class IClazz {}
}

module: external 和 internal