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时,可不传递b
function test(a: string,b?: string) { }
function test(...args) { }
函数
function* test() {
console.log("start");
yield;
console.log("finish");
}
var f1 = test();
f1.next();//输出start
f1.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()