|
1 | 1 | import '../../vaadin-virtual-list.js'; |
2 | 2 |
|
3 | | -import { |
4 | | - VirtualListElement, |
5 | | - VirtualListItem, |
6 | | - VirtualListItemModel, |
7 | | - VirtualListRenderer |
8 | | -} from '../../vaadin-virtual-list.js'; |
| 3 | +import { VirtualListElement, VirtualListItemModel, VirtualListRenderer } from '../../vaadin-virtual-list.js'; |
9 | 4 |
|
10 | 5 | const assertType = <TExpected>(actual: TExpected) => actual; |
11 | 6 |
|
12 | | -const virtualList = document.createElement('vaadin-virtual-list'); |
| 7 | +const genericVirtualList = document.createElement('vaadin-virtual-list'); |
13 | 8 |
|
14 | | -assertType<VirtualListElement>(virtualList); |
| 9 | +assertType<VirtualListElement>(genericVirtualList); |
15 | 10 |
|
16 | | -assertType<VirtualListItem>(1); |
17 | | -virtualList.items = [1, 2, 3]; |
| 11 | +genericVirtualList.items = [1, 2, 3]; |
| 12 | + |
| 13 | +interface TestVirtualListItem { |
| 14 | + testProperty: string; |
| 15 | +} |
| 16 | + |
| 17 | +const virtualList = genericVirtualList as VirtualListElement<TestVirtualListItem>; |
| 18 | + |
| 19 | +assertType<VirtualListElement<TestVirtualListItem>>(virtualList); |
| 20 | + |
| 21 | +virtualList.items = [{ testProperty: '1' }, { testProperty: '2' }, { testProperty: '3' }]; |
| 22 | + |
| 23 | +assertType<Array<TestVirtualListItem>>(virtualList.items); |
18 | 24 |
|
19 | 25 | virtualList.renderer = (root, virtualList, model) => { |
20 | 26 | assertType<HTMLElement>(root); |
21 | 27 | assertType<VirtualListElement>(virtualList); |
22 | | - assertType<VirtualListItemModel>(model); |
| 28 | + assertType<VirtualListItemModel<TestVirtualListItem>>(model); |
| 29 | + assertType<number>(model.index); |
| 30 | + assertType<TestVirtualListItem>(model.item); |
23 | 31 | }; |
24 | 32 |
|
25 | | -assertType<VirtualListRenderer>(virtualList.renderer); |
| 33 | +assertType<VirtualListRenderer<TestVirtualListItem>>(virtualList.renderer); |
26 | 34 |
|
27 | 35 | assertType<void>(virtualList.scrollToIndex(3)); |
28 | 36 |
|
|
0 commit comments