type IFooIndex = string & {_type?: 'foo'};
type IBarIndex = string & {_type?: 'bar'};
class Foo {
id: IFooIndex;
}
class Bar {
id: IBarIndex;
}
function findFoo(index: IFooIndex) {
// searching by IFooIndex
}
findFoo( new Bar().id );
Задумка была в том,чтобы при заходе на vk.com подрубался script.js,а если на youtube.com,то скрипт noscript.js
{
"matches" : ["vk.com", "youtube.com"],
"js" : ["entry.js"],
"run_at": "document_end"
}
Ведь с логической точки зрения при каждом вызове функции makeCounter(), которую мы присвоили во внешнюю переменную counter, у нас при выполнении сначала должен сброситься счётчик counter.currentCount в единицу!
counter.currentCount = 1;
выполнится один раз, при вызове makeCounter()
. В дальнейшем будет вызываться функция counter
, которая инкрементирует переменную. function toJSON(node) {
node = node || this;
var obj = {
nodeType: node.nodeType
};
if (node.tagName) {
obj.tagName = node.tagName.toLowerCase();
} else
if (node.nodeName) {
obj.nodeName = node.nodeName;
}
if (node.nodeValue) {
obj.nodeValue = node.nodeValue;
}
var attrs = node.attributes;
if (attrs) {
var length = attrs.length;
var arr = obj.attributes = new Array(length);
for (var i = 0; i < length; i++) {
attr = attrs[i];
arr[i] = [attr.nodeName, attr.nodeValue];
}
}
var childNodes = node.childNodes;
if (childNodes) {
length = childNodes.length;
arr = obj.childNodes = new Array(length);
for (i = 0; i < length; i++) {
arr[i] = toJSON(childNodes[i]);
}
}
return obj;
}
console.log(toJSON(document.querySelector('.menu')))