打字稿:是否可以使用函数声明类

吉通

阅读本教程,我发现在Typescript中声明类的一种方法是使用class类似语法。

class Person { 
   constructor(name: string) {
      this.name = name
   }
}

编译后将生成以下Javascript代码。

//Generated by typescript 1.8.10
var Person = (function () {
   function Person(name) {
      this.name = name
   }
   return Person;
}());

我的问题是,是否有可能像这样使用生成的Javascript语法在Typescript中声明一个类?

function Person(name: string) {
  this.name = name
}
smac89

作为对现有答案的改进,您还可以通过以下方式进行操作:

interface Person {
    name: string;
}

interface PersonConstructor {
    new(name: string): Person;
}

const Person: PersonConstructor = function (this: Person, name: string) {
    this.name = name;
} as any;

const p = new Person("Alice");
console.log(p.name); // Alice

这样,即使您仍然在乎这些内容,也可以保留一些类型安全性。


这种方法还允许您Person通过先将静态方法添加到中来定义静态方法PersonConstructor因此,您可以执行以下操作:

interface PersonConstructor {
    new(name: string): Person;
    foo(bar: string): void;
}

然后做:

Person.foo = (bar: string) => {
    console.log(`foo ${bar}`);
}

并用 Person.foo("something");

游乐场链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以使用getClass()声明Java类变量?

来自分类Dev

打字稿:是否可以使用没有模块的`declare const`来公开全局变量

来自分类Dev

我可以使用打字稿强制转换函数的输出吗?

来自分类Dev

打字稿声明类类型

来自分类Dev

我可以将函数导入打字稿类文件吗?

来自分类Dev

我可以将函数导入打字稿类文件吗?

来自分类Dev

打字稿编译后是否可以保留原始函数头

来自分类Dev

为什么打字稿可以使用双重否定而不是布尔构造函数来推断非空类型?

来自分类Dev

打字稿:声明现有类的功能

来自分类Dev

使用函数在打字稿类中捕获json数据

来自分类Dev

在打字稿函数中声明“ this”的类型?

来自分类Dev

C ++多态性:是否可以使用从双重派生类到基类的函数?

来自分类Dev

打字稿错误“类不是构造函数”

来自分类Dev

类函数打字稿的返回类型

来自分类Dev

打字稿类成员函数分组

来自分类Dev

打字稿:类中的命名函数

来自分类Dev

当子类在抽象类中不使用函数时,是否可以使用NotImplementedException替代方法?

来自分类Dev

打字稿定义:如何在类中声明类

来自分类Dev

打字稿-推断函数是否被处理

来自分类Dev

是否可以使用好友函数将类类型转换为基本类型?

来自分类Dev

是否可以使用python的type函数动态创建类级变量?

来自分类Dev

Scala:是否可以使用宏注释对类的构造函数字段进行注释?(宏观天堂)

来自分类Dev

在打字稿中指定默认值时可以使用“ this”吗?

来自分类Dev

打字稿:可以使用自己的键对类型进行参数化吗?

来自分类Dev

是否可以导入打字稿中由字符串指定的类?

来自分类Dev

是否可以使用ClassA c = new ClassB声明?

来自分类Dev

打字稿:是否可以取消类型参数的函数重载?(帖子中的示例)

来自分类Dev

是否可以推断打字稿中映射类型的函数的返回类型?

来自分类Dev

我可以使用类型声明函数吗

Related 相关文章

  1. 1

    是否可以使用getClass()声明Java类变量?

  2. 2

    打字稿:是否可以使用没有模块的`declare const`来公开全局变量

  3. 3

    我可以使用打字稿强制转换函数的输出吗?

  4. 4

    打字稿声明类类型

  5. 5

    我可以将函数导入打字稿类文件吗?

  6. 6

    我可以将函数导入打字稿类文件吗?

  7. 7

    打字稿编译后是否可以保留原始函数头

  8. 8

    为什么打字稿可以使用双重否定而不是布尔构造函数来推断非空类型?

  9. 9

    打字稿:声明现有类的功能

  10. 10

    使用函数在打字稿类中捕获json数据

  11. 11

    在打字稿函数中声明“ this”的类型?

  12. 12

    C ++多态性:是否可以使用从双重派生类到基类的函数?

  13. 13

    打字稿错误“类不是构造函数”

  14. 14

    类函数打字稿的返回类型

  15. 15

    打字稿类成员函数分组

  16. 16

    打字稿:类中的命名函数

  17. 17

    当子类在抽象类中不使用函数时,是否可以使用NotImplementedException替代方法?

  18. 18

    打字稿定义:如何在类中声明类

  19. 19

    打字稿-推断函数是否被处理

  20. 20

    是否可以使用好友函数将类类型转换为基本类型?

  21. 21

    是否可以使用python的type函数动态创建类级变量?

  22. 22

    Scala:是否可以使用宏注释对类的构造函数字段进行注释?(宏观天堂)

  23. 23

    在打字稿中指定默认值时可以使用“ this”吗?

  24. 24

    打字稿:可以使用自己的键对类型进行参数化吗?

  25. 25

    是否可以导入打字稿中由字符串指定的类?

  26. 26

    是否可以使用ClassA c = new ClassB声明?

  27. 27

    打字稿:是否可以取消类型参数的函数重载?(帖子中的示例)

  28. 28

    是否可以推断打字稿中映射类型的函数的返回类型?

  29. 29

    我可以使用类型声明函数吗

热门标签

归档