

例えば，以下のような `Options` という型を定義します。

[code]

    interface Options {
        "encoding": string,
        "initValue"?: any
    }
    
[/code]

変数 `options` を用意するとき変数中身の編集については型の入力補完を継承しつつ，最終的には読み取り専用として変数を宣言したいです。  
以下のコードは私が求める動作はしませんが、イメージとして捉えてください。

[code]

    const options = <Options>{
        // 当然ここでは Options型 の入力補完が行える
        "encoding": "String",
        "initValue": "test"
    } as const; // 最終的には読み取り専用として宣言
    
[/code]

なので，エディターで 変数 `options` にフォーカスする際には

[code]

    const options: Options
    
[/code]

ではなく，

[code]

    const options: {
        readonly encoding: "String";
        readonly initValue: "test";
    }
    
[/code]

と表示するようにしたいです


CC BY-SA 4.0
2022-07-02T23:35:54.780
89726
2022-07-03T03:36:21.250
35941
question
typescript
定義された型の変数を読み取り専用にしたい


[`Readonly<Type>`](https://www.typescriptlang.org/docs/handbook/utility-
types.html#readonlytype) で概ね実現するかと思います。

[code]

    const options: Readonly<Options> =  {
        encoding: "String",
        initValue: "test",
    }
    
[/code]

ただし、編集中に表示される `options` の型は、エディタの設定にもよるかも知れませんが、おそらく `Readonly<Options>`
となるでしょう。


CC BY-SA 4.0
2022-07-03T03:36:21.250
89730
2022-07-03T03:36:21.250
3054
89726
answer