---
title: "init(filenameExtension:conformingTo:)"
framework: uniformtypeidentifiers
role: symbol
role_heading: Initializer
path: "uniformtypeidentifiers/uttype-swift.struct/init(filenameextension:conformingto:)"
---

# init(filenameExtension:conformingTo:)

Creates a type based on a filename extension and an existing supertype that it conforms to.

## Declaration

```swift
init?(filenameExtension: String, conformingTo supertype: UTType = .data)
```

## Parameters

- `filenameExtension`: The filename extension.
- `supertype`: Another type that the resulting type must conform to; for example, doc://com.apple.uniformtypeidentifiers/documentation/UniformTypeIdentifiers/UTTypeData or doc://com.apple.uniformtypeidentifiers/documentation/UniformTypeIdentifiers/UTTypePackage.

## Discussion

Discussion If the system finds no types with the provided filename extension and conformance, but the inputs are otherwise valid, it may provide a dynamic type. The initializer returns nil if the parameters aren’t valid. This initializer is equivalent to calling: UTType(tag: filenameExtension,        tagClass: .filenameExtension,        conformingTo: supertype) To get the type of a file on disk, use contentType. important: You can’t always derive the type of a file system item based solely on its filename extension. A type depends on other attributes in addition to the filename extension, including whether the item is a directory.

## See Also

### Creating a type

- [init(_:)](uniformtypeidentifiers/uttype-swift.struct/init(_:).md)
- [init(mimeType:conformingTo:)](uniformtypeidentifiers/uttype-swift.struct/init(mimetype:conformingto:).md)
- [init(tag:tagClass:conformingTo:)](uniformtypeidentifiers/uttype-swift.struct/init(tag:tagclass:conformingto:).md)
- [init(exportedAs:conformingTo:)](uniformtypeidentifiers/uttype-swift.struct/init(exportedas:conformingto:).md)
- [init(importedAs:conformingTo:)](uniformtypeidentifiers/uttype-swift.struct/init(importedas:conformingto:).md)
