繁体   English   中英

打字稿中的只读变量vs只读类型方法

[英]Readonly variable vs Readonly-Typed method in typescript

Typescript中的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函数分配值?

Readonly<T> 是一个对象类型映射

type Readonly<T> = {
    readonly [P in keyof T]: T[P];
};

它会使T所有属性对编译器都是只读的-因此,以T开头的任何numberstring实际上都没有意义,因为它们都不具有属性。

如果您希望在运行时提供一个真正的只读(但内部可更改)属性,请使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM