typescript

类型

var myname: string = "cxk"; // 字符串var alias: any = 1 // 可以是任何类型var age: number = 13 // 数字类型var gender: boolean = true // 布尔function test(name: string): void { } // 函数参数以及函数返回值// 自定义类型class Person {    name: string    age: number}// 创建对象var cxk = new Person()cxk.name = "cxk"cxk.age = 18

参数

function test(a: string = "default") { }
// 调用函数test时,可不传递bfunction test(a: string,b?: string) { }
function test(...args) { }

函数

function* test() {     console.log("start");    yield;    console.log("finish");}var f1 = test();f1.next();//输出startf1.next(); // 输出 finish
function test() {    return {        pname: 'cxk',        age: 18    }}const {pname,age} = test()

安全链式调用

return person?.name?.firstName; // 等价于 person && person.name && person.name.firstName
person.name!; // 强制name属性不为空
name? :string; // 可选属性

for

for (let n of arr) {    // 可以用在数组、字符串、对象}

面向对象

class Person {    name;    run() {            }}const p1 = new Person()p1.name = "cxk1"const p2 = new Person()p2.name="cxk2"

权限控制

private run() {        }

泛型

const list: Array<String> = []list[0]="1" // 只能存放string

接口

interface Runnable {    run();}class Thread implements Runnable {    run () {}}

模块

export var prop1;export function data () {  console.log('data')}export class Thread{  run():void{    console.log('run')  }}
import {data} from './module1'data()