TypeScript的对象可以同时做为函数和对象使用,并带有额外的属性。

interface Counter {(start: number): string;interval: number;reset(): void;
}function getCounter(): Counter {let counter = <Counter>function (start: number) { };counter.interval = 123;counter.reset = function () { };return counter;
}let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;

对应生成的JavaScript代码:

function getCounter() {var counter = function (start) { };counter.interval = 123;counter.reset = function () { };return counter;
}
var c = getCounter();
c(10);
c.reset();
c.interval = 5.0;

TypeScript里的混合类型相关推荐

  1. TypeScript里的工具类型Partial的理解用法

    TypeScript里的工具类型Partial的理解用法 Partial 可以快速把某个接口类型中定义的属性类型变成可选的(Optional): 其实Partial源码很简单 Partial 可以快速 ...

  2. TypeScript 里的枚举类型 enum

    官网地址 枚举是 TypeScript 为数不多的不是 JavaScript 类型级扩展的特性之一. 枚举允许开发人员定义一组命名常量. 使用枚举可以更轻松地记录意图,或创建一组不同的案例. Type ...

  3. TypeScript里的工具类型Partial的用法

    在SAP Spartacus的源代码里我们可以观察到很多Partial的使用场景: Partial 可以快速把某个接口类型中定义的属性变成可选的(Optional): interface People ...

  4. TypeScript里的中括号类型定义法

    下图定义了一个类型Data,可以包含一个字段,指向任意数据: https://stackoverflow.com/questions/58090665/typescript-what-is-the-t ...

  5. TypeScript里的自定义类型用法

    新建一个index.ts: type NumGenerator = (input: number) => number;function myFunc(numGenerator: NumGene ...

  6. TypeScript 里 never 类型的用法举例

    在缩小范围时,您可以将联合的选项减少到您已删除所有可能性并且一无所有的程度. 在这些情况下,TypeScript 将使用 never 类型来表示不应该存在的状态. never 类型可分配给每种类型: ...

  7. TypeScript里一些特殊的类型

    本文内容部分来自:https://www.w3cschool.cn/typescript/typescript-basic-types.html any 有时候,我们会想要为那些在编程阶段还不清楚类型 ...

  8. TypeScript 里 interface 和 type 的区别

    StackOverflow 上的讨论链接 Interface vs Type alias in TypeScript 2.7 Differences Between Type Aliases and ...

  9. TypeScript里的Index signature

    参考链接:https://basarat.gitbook.io/typescript/type-system/index-signatures 看一个例子: class Foo {constructo ...

最新文章

  1. 【翻译】Pro LINQ Language Integrated Query in C# 2008 -- 第三章 (LINQ TO Objects) 第一节
  2. pytorch torch.device类(表示在其上或将要分配torch.Tensor的设备)
  3. ubuntu开发c/c++帮助文档
  4. js最基础知识回顾1(参数,函数,网页换肤)
  5. outlook搜索栏不见了_回忆了一下Foxmail内置的全文搜索那点事,于是有了此文
  6. rj45管脚定义_RJ45接口定义
  7. 淘宝客淘点金代码自动生成跳转
  8. 佳能mf4400打印机无线服务器,佳能mf4400打印机驱动最新版
  9. 记录虚拟机ubuntu 复制粘贴到主机window
  10. 功率因数cosφ仪表盘
  11. java局域网聊天博客,java swing+socket+mysql实现多个客户端局域网聊天
  12. java计算机毕业设计课堂考勤系统MyBatis+系统+LW文档+源码+调试部署
  13. 如何安装svelte_svelte js框架介绍编译器
  14. 同步(Synchronous)和异步(Asynchronous)方法的区别
  15. 新手站长建站初期利于优化的网站描述
  16. JavaScript事件——【小案例】小人快跑
  17. ORA-00821: Specified value of sga_target 980M is too small, needs to be at least 1164M
  18. NVMe系列专题之二:队列(Queue)管理
  19. 南昌大学《嵌入式系统》期末考试试卷真题(含答案)
  20. directx修复工具win7_win10下安装win7双系统的惨痛教训!

热门文章

  1. Java设计模式(六)----适配器模式
  2. MVC Controllers和Forms验证
  3. linux cpio(copy in/out) 命令详解
  4. 随机生成10元素数组并找出最大元素(Java)
  5. 20155212 2017-2018-1 《信息安全系统设计》第8周课下作业
  6. 1215.1——动态分配内存的补充realloc
  7. CLR via C# (二)
  8. C#利用反射机制,获取实例的属性和属性值
  9. HDU4669_Mutiples on a circle
  10. 28个经过重新设计的著名博客案例