4

たとえば、次のコードを参照してください。

var a
a.set('my-custom-value',55)
a.

行番号 3 で、IDE に行 2 の値を認識させ、ライブラリを使用しているエンドユーザーによって定義された文字列にオートコンプリートを提供するにはどうすればよいですか?

入力した後a.、VSCode によるオートコンプリート オプションとして「my-custom-value」が表示されるようにします。

がそのように機能しているのを見ましたyargs。オプションまたは定位置パラメーターを定義すると、後で IDE が選択したものを提示します。

4

4 に答える 4

4

これはassertsreturn typeで行うことができます。これは、Typescript が制御フローの型の縮小をサポートしているため可能です。

class Foo {
    setKey<K extends PropertyKey, V>(k: K, v: V): asserts this is Record<K, V> {
        (this as any)[k] = v;
    }
}

let foo: Foo = new Foo();
// foo. completes as foo.setKey

foo.setKey('bar', 23);
// now foo. completes as foo.bar or foo.setKey

遊び場リンク

于 2020-09-07T02:06:50.393 に答える
0

設定する値がわかっている場合は、次のようなことを試すことができます

let a: { value?: number } = {}
a.value = 55

number | undefinedただし、typescript コンパイラーは、コードのどの時点でも値を設定したかどうかを認識できないため、値は常に型になります。

于 2020-09-06T23:52:30.297 に答える