[activex-*] Remove Enumerator overload taking SafeArray (#26103)

* Remove enumerator overload that takes SafeArray

* Interop tests depend on activex-scripting; associated version bump

* windows-script-host version bump

* npm test fixes

* Fix comment
This commit is contained in:
Zev Spitz
2018-05-29 15:54:20 -07:00
committed by Mohamed Hegazy
parent bae55e8629
commit 33da0daffb
11 changed files with 33 additions and 52 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
// Project: https://msdn.microsoft.com/en-us/library/windows/desktop/bb773938(v=vs.85).aspx
// Definitions by: Zev Spitz <https://github.com/zspitz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.5
// TypeScript Version: 2.6
/// <reference types="activex-interop" />
+7 -1
View File
@@ -296,11 +296,17 @@ const setColumnVisibility = (visible: boolean) => {
const combobox = sheet.OLEObjects('ComboBox1').Object as MSForms.ComboBox;
combobox.Clear();
const enumerator = new Enumerator(dict.Items());
// iterate over keys using Enumerator
const enumerator = new Enumerator(dict);
enumerator.moveFirst();
while (!enumerator.atEnd()) {
combobox.AddItem(enumerator.item());
enumerator.moveNext();
}
// alternatively, make a JS array out of the keys, and iterate using forEach
// new VBArray(dict.Keys()).toArray().forEach(x => combobox.AddItem(x));
})();
})();
@@ -1,7 +1,7 @@
/// <reference types="windows-script-host" />
/// <reference types="activex-scripting" />
const collectionToArray = <T>(col: { Item(index: any): T } | SafeArray<T>) => {
const collectionToArray = <T>(col: { Item(index: any): T }): T[] => {
const results: T[] = [];
const enumerator = new Enumerator<T>(col);
enumerator.moveFirst();
@@ -423,7 +423,7 @@ the job?
document.GroupBroadcastReceipts = true;
const jobIDs = document.Submit('');
collectionToArray(jobIDs).forEach(jobID => WScript.Echo(`The job ID is ${jobID}`));
new VBArray(jobIDs).toArray().forEach(jobID => WScript.Echo(`The job ID is ${jobID}`));
while (recipients.Count > 0) {
recipients.Remove(1);
+10 -39
View File
@@ -1,49 +1,20 @@
// copied from the definitions in activex-scripting
interface Dictionary<TKey = any, TItem = any> {
/** Add a new key and item to the dictionary. */
Add(Key: TKey, Item: TItem): void;
/// <reference types="activex-scripting" />
/** Get the number of items in the dictionary. */
readonly Count: number;
/** Determine if a given key is in the dictionary. */
Exists(Key: TKey): boolean;
HashVal(Key: TKey): any;
/** Set or get the item for a given key */
Item(Key: TKey): TItem;
/** Get an array containing all items in the dictionary. */
Items(): SafeArray<TItem>;
/** Change a key to a different key. */
Key(Key: TKey): TKey;
/** Get an array containing all keys in the dictionary. */
Keys(): SafeArray<TKey>;
/** Remove a given key from the dictionary. */
Remove(Key: TKey): void;
/** Remove all information from the dictionary. */
RemoveAll(): void;
/** Set or get the item for a given key */
(Key: TKey): TItem;
}
interface ActiveXObjectNameMap {
'Scripting.Dictionary': Dictionary;
}
const dict: Dictionary<string, number> = new ActiveXObject('Scripting.Dictionary');
const dict: Scripting.Dictionary<string, number> = new ActiveXObject('Scripting.Dictionary');
dict.Add('one', 1);
dict.Add('two', 2);
dict.Add('three', 3);
const keyEnumerator = new Enumerator(dict.Keys());
const keyEnumerator = new Enumerator(dict);
keyEnumerator.moveFirst();
while (!keyEnumerator.atEnd()) {
const item = dict(keyEnumerator.item());
const power = Math.pow(item, 2);
}
const keysArray = new VBArray(dict.Keys()).toArray();
const itemsArray = new VBArray(dict.Items()).toArray();
for (let i = 0; i < keysArray.length; i++) {
const key = keysArray[i];
const item = itemsArray[i];
}
+3 -3
View File
@@ -2,7 +2,7 @@
// Project: https://msdn.microsoft.com/en-us/library/ff521046(v=vs.85).aspx
// Definitions by: Zev Spitz <https://github.com/zspitz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// TypeScript Version: 2.6
// tslint:disable-next-line no-empty-interface
interface ActiveXObjectNameMap { }
@@ -50,8 +50,8 @@ interface Enumerator<T = any> {
}
interface EnumeratorConstructor {
new <T = any>(collection: SafeArray<T> | { Item(index: any): T }): Enumerator<T>;
new (collection: any): Enumerator;
new <T = any>(collection: { Item(index: any): T }): Enumerator<T>;
// new (collection: any): Enumerator;
}
declare var Enumerator: EnumeratorConstructor;
+1 -1
View File
@@ -2,7 +2,7 @@
// Project: https://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx
// Definitions by: Zev Spitz <https://github.com/zspitz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// TypeScript Version: 2.6
/// <reference types="activex-interop" />
+1 -1
View File
@@ -2,7 +2,7 @@
// Project: https://api.libreoffice.org/
// Definitions by: Zev Spitz <https://github.com/zspitz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// TypeScript Version: 2.6
/// <reference types="activex-interop" />
+1 -1
View File
@@ -2,7 +2,7 @@
// Project: https://msdn.microsoft.com/en-us/library/aa741317(v=vs.85).aspx
// Definitions by: Zev Spitz <https://github.com/zspitz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// TypeScript Version: 2.6
declare namespace MSHTML {
const enum _BEHAVIOR_EVENT {
+1 -1
View File
@@ -2,7 +2,7 @@
// Project: https://msdn.microsoft.com/en-us/library/ms763742.aspx
// Definitions by: Zev Spitz <https://github.com/zspitz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// TypeScript Version: 2.6
/// <reference types="activex-interop" />
+5 -1
View File
@@ -491,7 +491,7 @@ declare namespace Scripting {
}
interface ActiveXObject {
set(obj: Scripting.Dictionary, propertyName: 'Item', parameterTypes: [any], newValue: any): void;
set<TKey = any, TValue = any>(obj: Scripting.Dictionary<TKey, TValue>, propertyName: 'Item', parameterTypes: [TKey], newValue: TValue): void;
}
interface ActiveXObjectNameMap {
@@ -499,3 +499,7 @@ interface ActiveXObjectNameMap {
'Scripting.Encoder': Scripting.Encoder;
'Scripting.FileSystemObject': Scripting.FileSystemObject;
}
interface EnumeratorConstructor {
new <TKey>(dict: Scripting.Dictionary<TKey>): Enumerator<TKey>;
}
+1 -1
View File
@@ -2,7 +2,7 @@
// Project: https://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx
// Definitions by: Zev Spitz <https://github.com/zspitz>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// TypeScript Version: 2.6
/// <reference types="activex-iwshruntimelibrary" />