1

我一直在浏览nativescript代码库,以了解如何为 {N} 3.0.1 更新我的一些插件,并且我看到了很多这样的类方法。

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

查看image-common.tsimage.android.ts的内容以查看完整源代码。

为什么从image-common.ts导出的 const 的属性在image.android.ts中使用是一种方法,为什么它们用方括号括起来?

4

1 回答 1

3

它在该类的原型上生成一个具有计算名称的属性。

虽然不是很使用这个完全有效的 javascript/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]();

您可以在此处查看一个工作示例。

于 2017-07-01T18:47:38.330 回答