[英]Readonly variable vs Readonly-Typed method in typescript
只读变量
length: Readonly<Number | number | String | string> = 1;
VS
只读类型的方法
length(lenght: Number | number | String | string): Readonly<Number | number | String | string> {
var width: Readonly<Number | number | String | string> = lenght;
return width;
}
- 这些想法有什么不同?
- 是否可以在运行时为
Readonly
函数分配值?
Readonly<T>
是一个对象类型映射 :
type Readonly<T> = {
readonly [P in keyof T]: T[P];
};
它会使T
所有属性对编译器都是只读的-因此,以T
开头的任何number
或string
实际上都没有意义,因为它们都不具有属性。
如果您希望在运行时提供一个真正的只读(但内部可更改)属性,请使用getter。
interface IFoo {
readonly length: number;
}
class Foo implements IFoo {
private _length: number;
get length(): number {
return this._length;
}
change(length: number) {
this._length = length;
}
}
有类型的变量之间没有差别Readonly<T>
和返回类型的变量的方法, Readonly<T>
扎使用方法的额外的步骤。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.