Typescript提供面向对象的&除了Javascript提供的函数编程之外的通用编程范例。
关键字prototype
是一个非常强大且有时是危险的工具。一般来说,我读到它模拟了Javascript中的继承方面。
那么最好是.ts中prototype
的[最接近]替代方案是什么?
答案 0 :(得分:3)
Typescript提供面向对象的&除了Javascript提供的函数编程之外的通用编程范例。
不,JavaScript本身提供了面向对象的通用编程模型,并且也可以用于函数式编程风格(但并不是专门为支持它而设计的,如Haskell)。
所有TypeScript都是:
class
语法很早就开始了。)private
关键字添加“私人”属性; JavaScript很快就会拥有私有属性,但不会使用TypeScript使用的语法。其他一切都是JavaScript。
当我说“全部”时,那并不是要减少那些东西。特别是静态类型检查非常有用,特别是在大型项目中。
关键字
prototype
是一个非常强大且有时是危险的工具。一般来说,我读到它模拟了Javascript中的继承方面。
prototype
不是关键字,它只是构造函数上属性的名称,它引用的对象将被指定为使用new
关键字创建的对象的原型。构造
JavaScript中的继承不是模拟。使用原型实现,请参阅prototypical inheritance。
那么最好是.ts中
prototype
的[最接近]替代方案是什么?
那将是:prototype
,明确地或间接地通过class
。同样,TypeScript只是添加了一层静态类型检查和一些次要的语法添加。其他一切都只是JavaScript。
假设答案是继承,那么
extend
如何将implement
JS的接口转换为TS [因为可能有很多抽象方法]?
你在这里要问的不是很清楚。您可以扩展字符串:
class MyString extends String {
// ...
}
...或添加到String.prototype
,最好通过Object.defineProperty
添加分配给它们的函数的非可枚举属性:
Object.defineProperty(String.prototype, "myAddition", {/*...*/});