只读变量与打字稿中的Readonly-Typed方法

时间:2017-06-21 18:33:51

标签: javascript angular variables typescript readonly

打字稿中的Readonly变量和Readonly-Typed方法有什么区别?

只读变量

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函数赋值?
  •   

1 个答案:

答案 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]; }; 的所有属性对编译器显示为只读 - 因此在Tnumber上使用它实际上没有意义因为,既没有属性。

如果你想在运行时使用真正的只读 - 但是内部可更改 - 属性,那么使用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>的方法之间没有区别,这是使用方法的额外步骤。