/** * @interface * @template T */ MyEnumerable = function () { }; /** * @param {T} item */ MyEnumerable.prototype.add = function (item) { }; /** * @constructor * @template TItemType * @extends {MyEnumerable.<TItemType>} */ MyList = function () { }; /** * @param {TItemType} item the item */ MyList.prototype.addItem = function (item) { }; /** @type {MyEnumerable.<string>}*/ var enumerable = new MyList(); enumerable.add("Bob"); // correct enumerable.add(123); // correct warning: number is not assignable to type string /** @type {MyList.<string>}*/ var list = new MyList(); list.add("Bob"); // incorrect warning: number is not assignable to type TITemType list.addItem("Bob"); // correct
Now works in WebStorm
Комментариев нет:
Отправить комментарий