Bagikan melalui


Impor di Bicep

Artikel ini menguraikan sintaks yang Anda gunakan untuk mengekspor dan mengimpor fungsionalitas dan namespace bersama. Menggunakan impor waktu kompilasi secara otomatis memungkinkan pembuatan kode versi bahasa 2.0 .

Mengekspor variabel, jenis, dan fungsi

Dekorator @export() menunjukkan bahwa file lain dapat mengimpor pernyataan tertentu. Dekorator ini hanya valid pada typepernyataan , var, dan func . Pernyataan variabel yang ditandai dengan @export() harus konstanta waktu kompilasi.

Sintaks untuk mengekspor fungsionalitas untuk digunakan dalam file Bicep lainnya adalah:

@export()
<statement_to_export>

Mengimpor variabel, jenis, dan fungsi

Sintaks untuk mengimpor fungsionalitas dari file Bicep lain adalah:

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

Dengan alias opsional untuk mengganti nama simbol:

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

Menggunakan sintaks impor kartubebas:

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

Anda dapat mencampur dan mencocokkan sintaks sebelumnya. Untuk mengakses simbol yang diimpor dengan menggunakan sintaks kartubebas, Anda harus menggunakan . operator: <alias_name>.<exported_symbol>.

Hanya pernyataan yang diekspor dalam file yang direferensikan yang tersedia untuk diimpor.

Anda dapat menggunakan fungsionalitas yang diimpor dari file lain tanpa batasan. Misalnya, Anda dapat menggunakan variabel yang diimpor di mana saja bahwa variabel yang dideklarasikan dalam file biasanya valid.

Contoh

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

Mengimpor namespace layanan

Sintaks untuk mengimpor namespace adalah:

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

Keduanya az dan sys merupakan namespace layanan bawaan Bicep. Mereka diimpor secara default. Untuk informasi selengkapnya tentang jenis data dan fungsi yang ditentukan dalam az dan sys, lihat Jenis data dan fungsi Bicep.