JS

A macro that exposes Swift functions, classes, and methods to JavaScript.

Macros.swift:35
@attached(peer) macro JS()

Apply this macro to Swift declarations that you want to make callable from JavaScript:

// Export a function to JavaScript
@JS public func greet(name: String) -> String {
    return "Hello, \(name)!"
}

// Export a class and its members
@JS class Counter {
    private var count = 0

    @JS init() {}

    @JS func increment() {
        count += 1
    }

    @JS func getValue() -> Int {
        return count
    }
}

When you build your project with the BridgeJS plugin, these declarations will be accessible from JavaScript, and TypeScript declaration files (.d.ts) will be automatically generated to provide type safety.

For detailed usage information, see the article Exporting Swift to JavaScript.

See also

  • enum JSValue

    JSValue represents a value in JavaScript.

  • class JSObject

    JSObject represents an object in JavaScript and supports dynamic member lookup. Any member access like object.foo will dynamically request the JavaScript and Swift runtime bridge library for a member with the specified name in this object.