Dela via


Importer i Bicep

I den här artikeln beskrivs den syntax som du använder för att exportera och importera delade funktioner och namnområden. Om du använder kompileringstidsimporter aktiveras automatiskt språkversion 2.0-kodgenerering .

Exportera variabler, typer och funktioner

Dekoratören @export() anger att en annan fil kan importera en specifik instruktion. Den här dekoratören är endast giltig för type, varoch func -instruktioner. Variabelinstruktioner som markerats med @export() måste vara kompileringskonstanter.

Syntaxen för att exportera funktioner för användning i andra Bicep-filer är:

@export()
<statement_to_export>

Importera variabler, typer och funktioner

Syntaxen för att importera funktioner från en annan Bicep-fil är:

import {<symbol_name>, <symbol_name>, ...} from '<bicep_file_name>'

Med valfritt alias för att byta namn på symboler:

import {<symbol_name> as <alias_name>, ...} from '<bicep_file_name>'

Använd syntaxen för jokerteckenimport:

import * as <alias_name> from '<bicep_file_name>'

Du kan blanda och matcha de föregående syntaxerna. Om du vill komma åt importerade symboler med hjälp av jokerteckensyntaxen måste du använda operatorn . : <alias_name>.<exported_symbol>.

Endast instruktioner som exporterades i filen som refereras är tillgängliga för import.

Du kan använda funktioner som har importerats från en annan fil utan begränsningar. Du kan till exempel använda importerade variabler var som helst där en variabel som deklareras i filen normalt skulle vara giltig.

Exempel

exports.bicep

@export()
type myObjectType = {
  foo: string
  bar: int
}

@export()
var myConstant = 'This is a constant value'

@export()
func sayHello(name string) string => 'Hello ${name}!'

main.bicep

import * as myImports from 'exports.bicep'
import {myObjectType, sayHello} from 'exports.bicep'

param exampleObject myObjectType = {
  foo: myImports.myConstant
  bar: 0
}

output greeting string = sayHello('Bicep user')
output exampleObject myImports.myObjectType = exampleObject

Importera namnområden

Syntaxen för att importera namnområden är:

import 'az@1.0.0'
import 'sys@1.0.0'

Både az och sys är inbyggda Bicep-namnområden. De importeras som standard. Mer information om datatyperna och funktionerna som definierats i och finns i az Datatyper och Bicep-funktioner.sys