gpt4 book ai didi

javascript - TypeScript 的方法别名

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:22 25 4
gpt4 key购买 nike

我认为这是使用 TS 实现方法别名的最简单方法:

export class Foo {

bar(){

}

aliasOfBar(){
return this.bar.apply(this, arguments);
}

}

但我只是想知道是否有另一种方法可以使用 TS(或 JS)定义别名。也许理想情况下没有额外的函数调用。

如果我这样做,例如:

let mySharedFn = function () {

};

export class Foo {
public bar = mySharedFn
public aliasBar = mySharedFn
}

它转换为:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var mySharedFn = function () {
};
var Foo = (function () {
function Foo() {
this.bar = mySharedFn;
this.aliasBar = mySharedFn;
}
return Foo;
}());
exports.Foo = Foo;

我想避免使用构造函数创建方法等带来的额外调用。

最佳答案

您可以使用接口(interface)和原型(prototype)将别名方法添加到类中,如下所示:

class Person {
constructor(public name: string) {}
greet(greeting: string): string { return `${greeting}, ${this.name}`; }
}

interface Person {
hi: typeof Person.prototype.greet;
}
Person.prototype.hi = Person.prototype.greet;

const p = new Person("Alice");
console.log(p.greet("Hey"));
console.log(p.hi("Hi"));

关于javascript - TypeScript 的方法别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47647709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com