每天忙碌的日子,也不要忘记了好好生活 🏠

vuePress-theme-reco happylay 🐑    2020 - 2021
每天忙碌的日子,也不要忘记了好好生活 🏠 每天忙碌的日子,也不要忘记了好好生活 🏠

Choose mode

  • dark
  • auto
  • light
主页
分类
  • 手册
  • 前端
  • 后端
  • 工作
  • 相册
  • 文档
标签
时间轴
文档
  • 轨迹
个人空间
  • 哔哩哔哩
  • 编辑博客
工具集
  • 后端工具

    • 在线json解析
    • yml格式转换
    • websocket测试
    • 时间戳转换
    • cron表达式
    • linux程序包
    • 大小写转换
    • toml格式转换
  • 后端框架

    • Spring
    • GoFrame
  • 前端工具

    • Vant移动端组件库
    • Element桌面端组件库
    • uni-app移动端框架
    • uview移动端框架
    • colorui2.0文档
    • Figma
    • Codepen
    • Dribbble
    • Iconfont阿里矢量图库
    • IconPark图标库
    • Icomoon
    • Remixicon
    • favicon图标制作
  • 开发环境

    • windows包管理器-baulk
    • windows包管理器-scoop
    • windows原版镜像
    • nexus3仓库
  • 微服务

    • 版本兼容关系
    • k8s在线配置
    • k8s接口文档
GitHub
author-avatar

happylay 🐑

34

文章

24

标签

主页
分类
  • 手册
  • 前端
  • 后端
  • 工作
  • 相册
  • 文档
标签
时间轴
文档
  • 轨迹
个人空间
  • 哔哩哔哩
  • 编辑博客
工具集
  • 后端工具

    • 在线json解析
    • yml格式转换
    • websocket测试
    • 时间戳转换
    • cron表达式
    • linux程序包
    • 大小写转换
    • toml格式转换
  • 后端框架

    • Spring
    • GoFrame
  • 前端工具

    • Vant移动端组件库
    • Element桌面端组件库
    • uni-app移动端框架
    • uview移动端框架
    • colorui2.0文档
    • Figma
    • Codepen
    • Dribbble
    • Iconfont阿里矢量图库
    • IconPark图标库
    • Icomoon
    • Remixicon
    • favicon图标制作
  • 开发环境

    • windows包管理器-baulk
    • windows包管理器-scoop
    • windows原版镜像
    • nexus3仓库
  • 微服务

    • 版本兼容关系
    • k8s在线配置
    • k8s接口文档
GitHub
  • 2020

    • api 接口服务
    • dom渲染总结
    • eslint代码规范
    • promise 异步总结
    • scss总结
    • typescript 总结
    • vue2 常用配置
    • vue2总结
    • vue3总结
    • vuex总结
    • 响应式布局
    • 基础样式
    • 常用js写法
    • 常用npm类库
    • 常用样式
    • 样式卡片

typescript 总结

vuePress-theme-reco happylay 🐑    2020 - 2021

typescript 总结

happylay 🐑 2020-12-31 代码片段typescript

摘要: typescript 总结 时间: 2020-12-31


# 接口

IPerson.ts

interface IPerson {
  readonly id: number
  name: string
  age: number
  sex?: string
}

const person: IPerson = {
  id: 1,
  name: '嬴政',
  age: 18,
  // sex: '男' // 可以没有
}

console.log('%c 🍱 person: ', 'font-size:12px;background-color: #E41A6A;color:#fff;', person);

interface SearchFunc {
  (source: string, subString: string): number
}

const search: SearchFunc = (source, subString) => {
  return source.search(subString) == -1 ? -1 : source.search(subString) + 1
}

console.log(search('abcd', 'd'))

interface Light {
  lightOn(): void
  lightOff(): void
}

class Home implements Light {
  lightOn(): void {
    console.log('%c 🍎  开灯: ', 'font-size:12px;background-color: #2EAFB0;color:#fff;', '开灯');
  }
  lightOff(): void {
    console.log('%c 🥘  关灯: ', 'font-size:12px;background-color: #FFDD4D;color:#fff;', '关灯');
  }
}

const l1: Light = new Home()
l1.lightOn()
l1.lightOff()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

# 元组

Tuple.ts

let t1: [string, number, boolean]

t1 = ['hi', 2020, true]

t1.push('ts')

console.log('%c 🌭 t1: ', 'font-size:12px;background-color: #B03734;color:#fff;', t1);
1
2
3
4
5
6
7

# 回调函数

CallbackFun.ts

class CallbackFun {

  /**
   * 结构体
   */
  constructor() {
    console.log('%c 🍵 初始化函数: ', 'font-size:12px;background-color: #FCA650;color:#fff;', '初始化函数');
    CallbackFun.callbackTest(2020, this, this.getCallResult.bind(this))
  }

  /**
   * 
   * @param arg 参数
   * @param clazz 调用域
   * @param callback  回调函数
   */
  public static callbackTest(arg: number, clazz: any, callback: Function): void {

    let result: number = ++arg;

    // 回调函数
    callback.call(clazz, result, '额外回调参数');

  }

  /**
   * 回调接受函数
   * @param res 结果
   */
  private getCallResult(res: any, res1: any): void {
    console.log('%c 🥓  回调结果:, res: ', 'font-size:12px;background-color: #FCA650;color:#fff;', "回调结果:", res);
    console.log('%c 🍷 res1: ', 'font-size:12px;background-color: #EA7E5C;color:#fff;', res1);
  }

}

// 调用回调函数
const f1 = new CallbackFun()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
编辑文档
最后一次更新: 2021/2/2 下午12:34:17
欢迎来到小屋。
看板娘