我在TypeScript中有这样一个函数:
set parameter(value: string) {
this._paremeter = value;
}
这个很好用,我想为了完整起见:让我们添加一个正确的类型,说明这个函数不返回任何结果,但是,没有一个是有效的:
set parameter(vale: string): void {}
set parameter(vale: string): never {}
我也试过这些,只是为了确认一下,但当然这些都不管用:
set parameter(vale: string): undefined {}
set parameter(vale: string): null {}
是否存在正确的类型,或者set
-函数应该根本没有类型?
3条答案
按热度按时间voase2hg1#
Setter不支持指定返回类型。
从(现已弃用的)语言规范:
set
* 属性名称 *(
* 绑定标识符或模式类型注解(可选)*)
{
* 函数体 *}
new9mtju2#
从 typescript 文档
TypeScript支持getter/setter作为拦截对对象成员访问的一种方式,这为您提供了一种更细粒度的控制方式,以控制如何访问每个对象上的成员。
这里有一个集合的例子
总之,set方法不能返回类型,所以,第一种方法是正确的。
cotxawn73#
“set”访问器不能具有Typescript语言中的返回类型注解。
如果激活了tslint,它将显示错误ts(1095)