在ts文件中,
export class ComponentName{
methodName (para1,para2) {
//code here
}
}
这被认为是正确的,但是当我将关键字函数添加到方法时,代码不会编译并给出错误,说它只需要方法,访问器,构造函数和属性。
答案 0 :(得分:2)
我认为你在理解ECMAScript 6时遇到了问题.Angular使用TypeScript,它基于ECMAScript 6。
传统JavaScript使用函数和基于原型的继承 构建可重用的组件,但这可能会感到有点尴尬 程序员更习惯于“面向对象的方法”,其中 类继承功能和对象是从这些构建的 类。从ECMAScript 2015开始,也称为ECMAScript 6, JavaScript程序员将能够使用它来构建他们的应用程序 这种面向对象的基于类的方法。在TypeScript中,我们允许 开发人员现在使用这些技术,并将其编译为 适用于所有主流浏览器和平台的JavaScript,没有 必须等待下一版本的JavaScript。
...
class Greeter { greeting: string; constructor(message: string) { this.greeting = message; } greet() { return "Hello, " + this.greeting; } } let greeter = new Greeter("world");
如果您之前使用过C#或Java,那么语法看起来应该很熟悉。我们 宣布一个新类Greeter。这个类有三个成员:一个属性 叫问候语,构造函数和方法问候。
[Source]
答案 1 :(得分:0)
正如@virsha 所说,这不是关于 Angular,而是关于 ECMAScript 6 method definitions。
<块引用>从 ECMAScript 2015 开始,引入了更短的对象初始值设定项的方法定义语法。它是分配给方法名称的函数的简写。
const obj = {
foo: function() {
// ...
},
bar: function() {
// ...
}
}
速记语法类似于 ES5 中引入的 getter 和 setter 语法。
给定以下代码:
const obj = {
foo() {
// ...
},
bar() {
// ...
}
}
您现在可以将其缩短为:
class Point {
x = 10;
y = 10;
scale(n: number): void {
this.x *= n;
this.y *= n;
}
}
在 Typescript 文档中,这指的是 Class methods。
<块引用>类上的函数属性称为方法。方法可以使用所有与函数和构造函数相同的类型注解:
[1,0,0,1,1,1]
除了标准类型注解之外,TypeScript 不会向方法添加任何其他新内容。