gpt4 book ai didi

typescript - 在 TypeScript 中,我如何声明类方法的同义词?

转载 作者:行者123 更新时间:2023-12-05 02:01:04 25 4
gpt4 key购买 nike

我想定义类方法,它应该与其他类方法做同样的事情并返回相同的值。类似的东西:

class Thing {
_description : string
description( new_desc : string ) : Thing {
this._description = new_desc
return this
}

/** And here I want to define method which is doing absolutely the same and
returning the same value, but targeting API users that are lazy to type.*/
desc( ? ) {
?
}
}

在普通的 JavaScript 中,我会这样做:

class Thing {
_description
description( new_desc ) {
this._description = new_desc
return this
}

desc() {
return this.description.apply( this, arguments )
}
}

但它显然打破了所有的类型推断和安全。

如何在 TypeScript 中执行以确保类型安全?

最佳答案

您可以使用 index access types 执行此操作和 Parameters实用程序类型 ( playground ):

class Thing {
private _description = "";
description( new_desc: string ) {
this._description = new_desc
return this
}

desc(...args: Parameters<Thing["description"]>) {
return this.description.apply( this, args )
}
}


const test = new Thing();
test.description("test");
test.desc("test");
test.desc(5) // error

关于typescript - 在 TypeScript 中,我如何声明类方法的同义词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66804042/

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