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()