只读变量
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
函数赋值?
答案 0 :(得分:2)
n = 5
k = 4
a = [1,2,3,4,5]
b = []
for i in a:
if (i + k) <= (n - 1):
b.append(a[i+k])
elif (i+k-n) < (n-1):
b.append(a[i+k-n])
print(b)
is an object-type mapping:
Readonly<T>
它会使type Readonly<T> = {
readonly [P in keyof T]: T[P];
};
的所有属性对编译器显示为只读 - 因此在T
或number
上使用它实际上没有意义因为,既没有属性。
如果你想在运行时使用真正的只读 - 但是内部可更改 - 属性,那么使用getter。
string
变量类型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>
的方法之间没有区别,这是使用方法的额外步骤。