---
title: "init(_:as:widget:timeline:)"
framework: developertoolssupport
role: symbol
role_heading: Initializer
path: "developertoolssupport/preview/init(_:as:widget:timeline:)"
---

# init(_:as:widget:timeline:)

Creates a preview of a timeline-style widget.

## Declaration

```swift
@MainActor init(_ name: String? = nil, as family: WidgetFamily, widget: @escaping () -> some Widget, @PreviewTimelineBuilder timeline: @escaping @MainActor () async -> [any TimelineEntry])
```

## Discussion

Discussion The #Preview macro expands into a declaration that calls this initializer. To create a preview that appears in the canvas, you must use the macro, not instantiate a Preview directly.

## See Also

### Creating a preview of a widget

- [init(_:as:using:widget:contentStates:)](developertoolssupport/preview/init(_:as:using:widget:contentstates:).md)
- [init(_:as:using:widget:timelineProvider:)](developertoolssupport/preview/init(_:as:using:widget:timelineprovider:)-1if5u.md)
- [init(_:as:using:widget:timelineProvider:)](developertoolssupport/preview/init(_:as:using:widget:timelineprovider:)-5335n.md)
- [init(_:as:widget:timelineProvider:)](developertoolssupport/preview/init(_:as:widget:timelineprovider:).md)
