2017-07-01 7 views
0

私はnativescriptコードベースを使って、{N} 3.0.1のプラグインのいくつかを更新する方法を見てきました。このように多くのクラスメソッドがあります。なぜ、typescriptで名前を囲む角括弧内のメソッドを宣言しますか?

[srcProperty.setNative](value: any) { 
    this._createImageSourceFromSrc(value); 
} 

は、完全なソースを見てimage-common.tsimage.android.tsの内容を参照してください。

理由image.android.ts方法で使用画像common.tsからエクスポートCONSTの特性であり、なぜ彼らは角括弧に包まれていますか?

答えて

1

計算された名前でそのクラスのプロトタイプのプロパティを生成します。

この完全に有効なjavascript/typescriptコードはあまり使用されていませんが。それはしかし、入力のいくつかの損失をもたらします。

このtypescriptですコード:

let propName = 'someMethod'; 

class A { 
    [propName](): number { 
    console.log(propName); 
    return 5; 
    } 
} 

let a = new A(); 

let x = a[propName]() 

はこのjavascriptの出力になります。

var propName = 'someMethod'; 
var A = (function() { 
    function A() { 
    } 
    A.prototype[propName] = function() { 
     console.log(propName); 
     return 5; 
    }; 
    return A; 
}()); 
var a = new A(); 
var x = a[propName](); 

あなたは作業例hereを見ることができます。

+0

うわー!!ありがとう、これは私の最初の時間です。 –

+1

それは非常に珍しいです、私はそれもまた最初に見るが、それは理にかなっている。構文の観点から見てください。 – toskv

+0

もあります。ちょうどそのように最初は考えなかった –

関連する問題