目录函数类型函数声明
函数类型表达式
可选参数
任意个数的参数
接口(interface)定义接口
使用接口
选成员 & 只读成员 & 动态成员
类需要对类的属性与方法进行声明
类成员访问修饰符(public/private/protected)定义一个构造函数
初始化实例对象并访问构造函数成员
创建子类继承构造函数并访问其成员
类的构造函数被私有化
类的只读属性
类与接口定义接口
实现接口
抽象类抽象类定义
子类继承
泛型定义泛型参数
调用时传入泛型参数的类型
TypeScript学习地图
函数类型
函数的输入和输出进行约束,及参数和返回值
函数声明// 参数的类型和返回值的类型
function func1(a: number, b: number): string {
return 'func1'
}
// 参数类型和个数是固定的,否则报错
func1(100, 200)
函数类型表达式// 普通函数
const func4 = function (a: number, b: number): string {
return 'func2'
}
// 使用箭头函数
const func5: (a: number, b:number) => string = function(a, b) {
return 'func2'
}
可选参数
可选参数一定要在必选参数后面,放在函数最后。// 可以在b后面添加问号表示可选,也可以直接设置默认值,也可以不用传
function func2(a: number, b: number = 10, c?: number): string {
return 'func1'
}
func1(100)
任意个数的参数
使用ES6的rest操作符function func3(a: number, b: number = 10, ...rest: number[]): string {
return 'func1'
}
func1(100,200,300,400)
接口(interface)
接口,是一种规范、契约,约定对象的结构。
接口是用来约束一个对象的结构,我们要使用这个接口,就要遵循其全部的约定。
接口最直观的体现就是对象应该有哪些成员以及成员的类型都是什么样的?
定义接口// 定义一个接口,里面确定要有两个成员,且都是字符串类型
interface Post {
title: string // 结尾可以使用逗号分隔,也可以使用分号去分割,还可以省略
content: string
}
使用接口// 使用的时候声明参数是Post类型,里面使用的时候不担心没有值
function printPost (post: Post) {
console.log(post.title)
console.log(post.content)
}
// title和content任何一个没有传或者不是字符串都会报错
printPost({
title: 'this is a title