示例:
@Pipe({ name: 'values', pure: false })
export class ValuesPipe implements PipeTransform {
transform(value: any, args: any[] = null): any {
return Object.keys(value).map(key => value[key]);
}
}
ES6中似乎不支持类继承。有没有一种替代方法不需要对超类进行逆向工程?
答案 0 :(得分:1)
ES6确实有类继承。类由extends
继承。
当您使用implements
时,您要求对接口进行类型检查。如果你想要类型检查你应该使用Typescript - 如果你不需要类型检查,那么你不需要implements
。使用implements对输出代码没有影响 - 它只是在编译期间进行类型检查。
例如在打字稿中:
class myClass{
public myID:number
constructor(){
}
talk(){
console.log("hi there");
}
}
class newClass {
public myID:number;
talk(){
console.log("Hi from new Class");
}
}
class newClassImplements implements myClass {
public myID:number;
talk(){
console.log("Hi from new Class");
}
}
newClass
和newClassImplements
在编译后都会产生完全相同的javascript。带implements
的版本只是要求编译器确保它与myClass
具有相同的接口,如果它没有在编译时出错。
在上面的示例ValuesPipe
中,PipeTransform
不继承.nil?
它只是实现了界面。如果您不需要类型检查,您应该只能编写所需的功能而忘记实现接口。